X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7f3ada717623084ff09274215eae35dfecb95c56..2fee5c0d119e7ff6ea60c1e4c558dab1d913ad48:/src/simix/smx_host.c diff --git a/src/simix/smx_host.c b/src/simix/smx_host.c index 6ab435081d..205c46b1cb 100644 --- a/src/simix/smx_host.c +++ b/src/simix/smx_host.c @@ -202,7 +202,6 @@ smx_action_t SIMIX_host_execute(const char *name, smx_host_t host, #ifdef HAVE_TRACING TRACE_smx_host_execute(action); - TRACE_surf_action(action->execution.surf_exec, action->category); #endif DEBUG1("Create execute action %p", action); @@ -294,7 +293,8 @@ e_smx_state_t SIMIX_host_execution_get_state(smx_action_t action) void SIMIX_host_execution_set_priority(smx_action_t action, double priority) { - surf_workstation_model->set_priority(action->execution.surf_exec, priority); + if(action->execution.surf_exec) + surf_workstation_model->set_priority(action->execution.surf_exec, priority); } void SIMIX_pre_host_execution_wait(smx_req_t req) @@ -311,6 +311,7 @@ void SIMIX_pre_host_execution_wait(smx_req_t req) if (MC_IS_ENABLED){ action->state = SIMIX_DONE; SIMIX_execution_finish(action); + return; } /* If the action is already finished then perform the error handling */ @@ -320,12 +321,14 @@ void SIMIX_pre_host_execution_wait(smx_req_t req) void SIMIX_host_execution_suspend(smx_action_t action) { - surf_workstation_model->suspend(action->execution.surf_exec); + if(action->execution.surf_exec) + surf_workstation_model->suspend(action->execution.surf_exec); } void SIMIX_host_execution_resume(smx_action_t action) { - surf_workstation_model->suspend(action->execution.surf_exec); + if(action->execution.surf_exec) + surf_workstation_model->suspend(action->execution.surf_exec); } void SIMIX_execution_finish(smx_action_t action) @@ -395,6 +398,7 @@ void SIMIX_post_host_execute(smx_action_t action) #ifdef HAVE_TRACING void SIMIX_set_category(smx_action_t action, const char *category) { + if (action->state != SIMIX_RUNNING) return; if (action->type == SIMIX_ACTION_EXECUTE){ surf_workstation_model->set_category(action->execution.surf_exec, category); }else if (action->type == SIMIX_ACTION_COMMUNICATE){