Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Handle host failures in communications. (bug raised by Alan Malta)
authoralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 8 Jun 2009 14:16:28 +0000 (14:16 +0000)
committeralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 8 Jun 2009 14:16:28 +0000 (14:16 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@6318 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/msg/msg_mailbox.c

index 1f1954d..13b605f 100644 (file)
@@ -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;
     }
   }