Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
SIMIX_CANCELED is a more adapted state in SIMIX_comm_cancel()
[simgrid.git] / src / simix / smx_network.c
index 68d36ae..d5d4631 100644 (file)
@@ -625,7 +625,9 @@ void SIMIX_comm_finish(smx_action_t action)
       case SIMIX_LINK_FAILURE:
         TRY {
          XBT_DEBUG("Link failure in action %p between '%s' and '%s': posting an exception to the issuer: %s (%p)",
-             action, action->comm.src_proc->smx_host->name, action->comm.dst_proc->smx_host->name,
+             action,
+             action->comm.src_proc ? action->comm.src_proc->smx_host->name : NULL,
+             action->comm.dst_proc ? action->comm.dst_proc->smx_host->name : NULL,
              req->issuer->name, req->issuer);
           THROWF(network_error, 0, "Link failure");
         }
@@ -714,7 +716,7 @@ void SIMIX_comm_cancel(smx_action_t action)
   /* so remove from it and delete it */
   if (action->state == SIMIX_WAITING) {
     SIMIX_rdv_remove(action->comm.rdv, action);
-    action->state = SIMIX_FAILED;
+    action->state = SIMIX_CANCELED;
   }
   else if (!MC_IS_ENABLED
       && (action->state == SIMIX_READY || action->state == SIMIX_RUNNING)) {