git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@9528
48e7efb5-ca39-0410-a469-
dd3cf9ba447f
proc->simdata->waiting_action = NULL;*/
if (state == SIMIX_DONE) {
proc->simdata->waiting_action = NULL;*/
if (state == SIMIX_DONE) {
- if (SIMIX_req_host_get_state(SIMIX_host_self()) == SURF_RESOURCE_OFF) {
- TRACE_msg_process_sleep_out(MSG_process_self());
+ TRACE_msg_process_sleep_out(MSG_process_self());
- MSG_RETURN(MSG_HOST_FAILURE);
- }
} else {
#ifdef HAVE_TRACING
TRACE_msg_process_sleep_out(MSG_process_self());
#endif
MSG_RETURN(MSG_HOST_FAILURE);
}
} else {
#ifdef HAVE_TRACING
TRACE_msg_process_sleep_out(MSG_process_self());
#endif
MSG_RETURN(MSG_HOST_FAILURE);
}
-#ifdef HAVE_TRACING
- TRACE_msg_process_sleep_out(MSG_process_self());
-#endif
- MSG_RETURN(MSG_OK);
}
/** \ingroup msg_gos_functions
}
/** \ingroup msg_gos_functions
void SIMIX_post_process_sleep(smx_action_t action)
{
void SIMIX_post_process_sleep(smx_action_t action)
{
- e_smx_state_t state = SIMIX_action_map_state(surf_workstation_model->action_state_get(action->sleep.surf_sleep));
while ((req = xbt_fifo_shift(action->request_list))) {
while ((req = xbt_fifo_shift(action->request_list))) {
+
+ switch(surf_workstation_model->action_state_get(action->sleep.surf_sleep)){
+ case SURF_ACTION_FAILED:
+ state = SIMIX_SRC_HOST_FAILURE;
+ break;
+
+ case SURF_ACTION_DONE:
+ state = SIMIX_DONE;
+ break;
+
+ default:
+ THROW_IMPOSSIBLE;
+ break;
+ }
req->process_sleep.result = state;
req->issuer->waiting_action = NULL;
SIMIX_request_answer(req);
}
req->process_sleep.result = state;
req->issuer->waiting_action = NULL;
SIMIX_request_answer(req);
}
SIMIX_process_sleep_destroy(action);
}
SIMIX_process_sleep_destroy(action);
}