From: Arnaud Giersch Date: Mon, 1 Apr 2019 13:06:36 +0000 (+0200) Subject: Really detach detached sends. X-Git-Tag: v3_22~3 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/c293e7d78841de86f25e653cf4803e54c9ea1c53?ds=sidebyside Really detach detached sends. The communication is not cancelled when the sender terminates, following the ogic of commit 9acedb4ebce15cd3399fcad4effb3fb79a0ee5ef. --- diff --git a/src/kernel/activity/CommImpl.cpp b/src/kernel/activity/CommImpl.cpp index ef42412ba0..a8386198a0 100644 --- a/src/kernel/activity/CommImpl.cpp +++ b/src/kernel/activity/CommImpl.cpp @@ -71,13 +71,13 @@ XBT_PRIVATE smx_activity_t simcall_HANDLER_comm_isend( other_comm->state_ = SIMIX_READY; other_comm->set_type(simgrid::kernel::activity::CommImpl::Type::READY); } - src_proc->comms.push_back(other_comm); if (detached) { other_comm->detached = true; other_comm->clean_fun = clean_fun; } else { other_comm->clean_fun = nullptr; + src_proc->comms.push_back(other_comm); } /* Setup the communication synchro */ @@ -88,12 +88,10 @@ XBT_PRIVATE smx_activity_t simcall_HANDLER_comm_isend( other_comm->match_fun = match_fun; other_comm->copy_data_fun = copy_data_fun; - if (MC_is_active() || MC_record_replay_is_active()) { + if (MC_is_active() || MC_record_replay_is_active()) other_comm->state_ = SIMIX_RUNNING; - return (detached ? nullptr : other_comm); - } - - other_comm->start(); + else + other_comm->start(); return (detached ? nullptr : other_comm); }