Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
model-checker : add ignore mechanism for global variables (data + bss segments) in...
[simgrid.git] / src / simix / smx_host.c
index 248eb91..2308f27 100644 (file)
@@ -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;