From: alegrand Date: Mon, 8 Jun 2009 14:16:28 +0000 (+0000) Subject: Handle host failures in communications. (bug raised by Alan Malta) X-Git-Tag: SVN~1322 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/a354216d8aa93606c10fb80d715a92b494a36b06 Handle host failures in communications. (bug raised by Alan Malta) git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@6318 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/src/msg/msg_mailbox.c b/src/msg/msg_mailbox.c index 1f1954d1cf..13b605f0cf 100644 --- a/src/msg/msg_mailbox.c +++ b/src/msg/msg_mailbox.c @@ -277,6 +277,10 @@ MSG_mailbox_get_task_ext(msg_mailbox_t mailbox, m_task_t * task, if (SIMIX_action_get_state(t_simdata->comm) != SURF_ACTION_RUNNING) break; + if (!SIMIX_host_get_state(h_simdata->smx_host)) + break; + if (!SIMIX_host_get_state(process->simdata->m_host->simdata->smx_host)) + break; } SIMIX_unregister_action_to_condition(t_simdata->comm, t_simdata->cond); @@ -393,6 +397,10 @@ MSG_mailbox_put_with_timeout(msg_mailbox_t mailbox, m_task_t task, && (SIMIX_action_get_state(t_simdata->comm) != SURF_ACTION_RUNNING)) break; + if (!SIMIX_host_get_state(local_host->simdata->smx_host)) + break; + if (!SIMIX_host_get_state(remote_host->simdata->smx_host)) + break; } } CATCH(e) { @@ -422,6 +430,10 @@ MSG_mailbox_put_with_timeout(msg_mailbox_t mailbox, m_task_t task, if (SIMIX_action_get_state(t_simdata->comm) != SURF_ACTION_RUNNING) break; + if (!SIMIX_host_get_state(local_host->simdata->smx_host)) + break; + if (!SIMIX_host_get_state(remote_host->simdata->smx_host)) + break; } }