X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8ba79039f7b59f05275e5964eff9fda48d46fec3..a8b5e623ecad573ef13267bd304777462993efdb:/src/simix/smx_host.c diff --git a/src/simix/smx_host.c b/src/simix/smx_host.c index 248eb91851..2308f27d4b 100644 --- a/src/simix/smx_host.c +++ b/src/simix/smx_host.c @@ -210,12 +210,13 @@ void SIMIX_host_add_auto_restart_process(smx_host_t host, arg->kill_time = kill_time; arg->argc = argc; - arg->argv = xbt_new(char*,argc); + arg->argv = xbt_new(char*,argc + 1); int i; for (i = 0; i < argc; i++) { arg->argv[i] = xbt_strdup(argv[i]); } + arg->argv[argc] = NULL; arg->properties = properties; arg->auto_restart = auto_restart; @@ -300,7 +301,7 @@ smx_action_t SIMIX_host_execute(const char *name, smx_host_t host, #endif /* set surf's action */ - if (!MC_IS_ENABLED) { + if (!MC_is_active()) { action->execution.surf_exec = surf_workstation_model->extension.workstation.execute(host->host, computation_amount); @@ -338,7 +339,7 @@ smx_action_t SIMIX_host_parallel_execute( const char *name, workstation_list[i] = host_list[i]->host; /* set surf's action */ - if (!MC_IS_ENABLED) { + if (!MC_is_active()) { action->execution.surf_exec = surf_workstation_model->extension.workstation. execute_parallel_task(host_nb, workstation_list, computation_amount, @@ -353,19 +354,14 @@ smx_action_t SIMIX_host_parallel_execute( const char *name, void SIMIX_host_execution_destroy(smx_action_t action) { - int destroyed=0; XBT_DEBUG("Destroy action %p", action); - if (action->execution.surf_exec) { - destroyed = surf_workstation_model->action_unref(action->execution.surf_exec); + surf_workstation_model->action_unref(action->execution.surf_exec); action->execution.surf_exec = NULL; } - - if (destroyed) { - xbt_free(action->name); - xbt_mallocator_release(simix_global->action_mallocator, action); - } + xbt_free(action->name); + xbt_mallocator_release(simix_global->action_mallocator, action); } void SIMIX_host_execution_cancel(smx_action_t action) @@ -408,7 +404,7 @@ void SIMIX_pre_host_execution_wait(smx_simcall_t simcall) simcall->issuer->waiting_action = action; /* set surf's action */ - if (MC_IS_ENABLED) { + if (MC_is_active()) { action->state = SIMIX_DONE; SIMIX_execution_finish(action); return;