X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d88a07362ad9bf21e7297c5f4e41806a2f56a167..2489210b4ea8d03fbece8db288ef9e3ff6725723:/src/surf/cpu_ti.c?ds=sidebyside diff --git a/src/surf/cpu_ti.c b/src/surf/cpu_ti.c index 3436e80e94..91d66eab9f 100644 --- a/src/surf/cpu_ti.c +++ b/src/surf/cpu_ti.c @@ -691,7 +691,7 @@ static void cpu_ti_action_set_priority(surf_action_t action, static double cpu_ti_action_get_remains(surf_action_t action) { - surf_model_t cpu_model = action->model_type; + surf_model_t cpu_model = action->model_obj; XBT_IN("(%p)", action); cpu_ti_update_remaining_amount(cpu_model, (cpu_ti_t) ((surf_action_cpu_ti_t) action)->cpu, @@ -770,12 +770,12 @@ static void cpu_ti_finalize(surf_model_t cpu_model) xbt_heap_free(cpu_ti_action_heap); } -static void surf_cpu_ti_model_init_internal(surf_model_t cpu_model) +surf_model_t surf_cpu_ti_model_init_internal(void) { s_surf_action_t action; s_cpu_ti_t cpu; - cpu_model = surf_model_init(); + surf_model_t cpu_model = surf_model_init(); cpu_ti_running_action_set_that_does_not_need_being_checked = xbt_swag_new(xbt_swag_offset(action, state_hookup)); @@ -784,6 +784,7 @@ static void surf_cpu_ti_model_init_internal(surf_model_t cpu_model) xbt_swag_new(xbt_swag_offset(cpu, modified_cpu_hookup)); cpu_model->name = "cpu_ti"; + cpu_model->type = SURF_MODEL_TYPE_CPU; cpu_model->action_unref = cpu_ti_action_unref; cpu_model->action_cancel = cpu_ti_action_cancel; @@ -817,14 +818,16 @@ static void surf_cpu_ti_model_init_internal(surf_model_t cpu_model) xbt_heap_set_update_callback(cpu_ti_action_heap, cpu_ti_action_update_index_heap); + return cpu_model; } -void surf_cpu_model_init_ti(surf_model_t cpu_model) +surf_model_t surf_cpu_model_init_ti(void) { - xbt_assert(!cpu_model,"CPU model already initialized. This should not happen."); - surf_cpu_ti_model_init_internal(cpu_model); + surf_model_t cpu_model = surf_cpu_ti_model_init_internal(); cpu_ti_define_callbacks(); xbt_dynar_push(model_list, &cpu_model); + + return cpu_model; }