X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3ca5d58e75df5f28588be1953f6b84a79b163d3b..f97dad59a6ec08fd33999dd28f309b001c6e28c9:/src/simix/smx_network.c diff --git a/src/simix/smx_network.c b/src/simix/smx_network.c index f3798e69a8..992f98c122 100644 --- a/src/simix/smx_network.c +++ b/src/simix/smx_network.c @@ -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; }