From c293e7d78841de86f25e653cf4803e54c9ea1c53 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Mon, 1 Apr 2019 15:06:36 +0200 Subject: [PATCH] Really detach detached sends. The communication is not cancelled when the sender terminates, following the ogic of commit 9acedb4ebce15cd3399fcad4effb3fb79a0ee5ef. --- src/kernel/activity/CommImpl.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) 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); } -- 2.20.1