X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a6c262a93734a964f6aaaddf59d933398db660ff..2fee5c0d119e7ff6ea60c1e4c558dab1d913ad48:/src/simix/smx_host.c diff --git a/src/simix/smx_host.c b/src/simix/smx_host.c index 744bfc8327..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) @@ -391,3 +394,16 @@ void SIMIX_post_host_execute(smx_action_t action) SIMIX_execution_finish(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){ + surf_workstation_model->set_category(action->comm.surf_comm, category); + } +} +#endif +