Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Bug fix. Cope with the new way actions are handled.
[simgrid.git] / src / simix / smx_network.c
index f3798e6..992f98c 100644 (file)
@@ -175,7 +175,7 @@ int SIMIX_comm_has_send_match(smx_rdv_t rdv, int (*match_fun)(void*, void*), voi
     }
   }
   XBT_DEBUG("No matching communication action found");
-  return 1;
+  return 0;
 }
 
 /**
@@ -196,7 +196,7 @@ int SIMIX_comm_has_recv_match(smx_rdv_t rdv, int (*match_fun)(void*, void*), voi
     }
   }
   XBT_DEBUG("No matching communication action found");
-  return 1;
+  return 0;
 }
 
 /******************************************************************************/
@@ -258,10 +258,6 @@ void SIMIX_comm_destroy(smx_action_t action)
     action->latency_limited = SIMIX_comm_is_latency_bounded( action ) ;
 #endif
 
-#ifdef HAVE_TRACING
-  TRACE_smx_action_destroy(action);
-#endif
-
   xbt_free(action->name);
   SIMIX_comm_destroy_internal_actions(action);
 
@@ -530,10 +526,6 @@ XBT_INLINE void SIMIX_comm_start(smx_action_t action)
 
     action->state = SIMIX_RUNNING;
 
-#ifdef HAVE_TRACING
-    TRACE_smx_action_communicate(action, action->comm.src_proc);
-#endif
-
     /* If a link is failed, detect it immediately */
     if (surf_workstation_model->action_state_get(action->comm.surf_comm) == SURF_ACTION_FAILED) {
       XBT_DEBUG("Communication from '%s' to '%s' failed to start because of a link failure",
@@ -585,7 +577,7 @@ void SIMIX_comm_finish(smx_action_t action)
 
       case SIMIX_SRC_TIMEOUT:
         TRY {
-          THROW0(timeout_error, 0, "Communication timeouted because of sender");
+          THROWF(timeout_error, 0, "Communication timeouted because of sender");
         }
        CATCH(req->issuer->running_ctx->exception) {
           req->issuer->doexception = 1;
@@ -594,7 +586,7 @@ void SIMIX_comm_finish(smx_action_t action)
 
       case SIMIX_DST_TIMEOUT:
         TRY {
-          THROW0(timeout_error, 0, "Communication timeouted because of receiver");
+          THROWF(timeout_error, 0, "Communication timeouted because of receiver");
         }
        CATCH(req->issuer->running_ctx->exception) {
           req->issuer->doexception = 1;
@@ -604,9 +596,9 @@ void SIMIX_comm_finish(smx_action_t action)
       case SIMIX_SRC_HOST_FAILURE:
         TRY {
           if (req->issuer == action->comm.src_proc)
-            THROW0(host_error, 0, "Host failed");
+            THROWF(host_error, 0, "Host failed");
           else
-            THROW0(network_error, 0, "Remote peer failed");
+            THROWF(network_error, 0, "Remote peer failed");
         }
        CATCH(req->issuer->running_ctx->exception) {
           req->issuer->doexception = 1;
@@ -616,9 +608,9 @@ void SIMIX_comm_finish(smx_action_t action)
       case SIMIX_DST_HOST_FAILURE:
         TRY {
           if (req->issuer == action->comm.dst_proc)
-            THROW0(host_error, 0, "Host failed");
+            THROWF(host_error, 0, "Host failed");
           else
-            THROW0(network_error, 0, "Remote peer failed");
+            THROWF(network_error, 0, "Remote peer failed");
         }
        CATCH(req->issuer->running_ctx->exception) {
           req->issuer->doexception = 1;
@@ -630,7 +622,7 @@ void SIMIX_comm_finish(smx_action_t action)
          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,
              req->issuer->name, req->issuer);
-          THROW0(network_error, 0, "Link failure");
+          THROWF(network_error, 0, "Link failure");
         }
        CATCH(req->issuer->running_ctx->exception) {
           req->issuer->doexception = 1;
@@ -789,6 +781,9 @@ smx_process_t SIMIX_comm_get_dst_proc(smx_action_t action)
  */
 XBT_INLINE int SIMIX_comm_is_latency_bounded(smx_action_t action)
 {
+  if(!action){
+      return 0;
+  }
   if (action->comm.surf_comm){
       XBT_DEBUG("Getting latency limited for surf_action (%p)", action->comm.surf_comm);
       action->latency_limited = surf_workstation_model->get_latency_limited(action->comm.surf_comm);
@@ -812,7 +807,7 @@ SIMIX_comm_set_copy_data_callback(void (*callback) (smx_action_t, size_t))
 
 void SIMIX_comm_copy_pointer_callback(smx_action_t comm, size_t buff_size)
 {
-  xbt_assert1((buff_size == sizeof(void *)),
+  xbt_assert((buff_size == sizeof(void *)),
               "Cannot copy %zu bytes: must be sizeof(void*)", buff_size);
   *(void **) (comm->comm.dst_buff) = comm->comm.src_buff;
 }