From 6d14999afc8567368d13d1b1ad108ac9ddae32ae Mon Sep 17 00:00:00 2001 From: henricasanova Date: Thu, 6 Jul 2017 09:49:53 +0200 Subject: [PATCH] Removed the "state_ != finished" assert in s4u::Comm::wait(...) since waiting on a finished communication should be a feature, not a bug --- src/s4u/s4u_comm.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/s4u/s4u_comm.cpp b/src/s4u/s4u_comm.cpp index 070f7d1076..9f4ad0b438 100644 --- a/src/s4u/s4u_comm.cpp +++ b/src/s4u/s4u_comm.cpp @@ -83,7 +83,10 @@ void Comm::start() { state_ = started; } void Comm::wait() { - xbt_assert(state_ == started || state_ == inited); + xbt_assert(state_ == started || state_ == inited || state_ == finished); + + if (state_ == finished) + return; if (state_ == started) simcall_comm_wait(pimpl_, -1/*timeout*/); @@ -103,7 +106,10 @@ void Comm::wait() { } void Comm::wait(double timeout) { - xbt_assert(state_ == started || state_ == inited); + xbt_assert(state_ == started || state_ == inited || state_ == finished); + + if (state_ == finished) + return; if (state_ == started) { simcall_comm_wait(pimpl_, timeout); -- 2.20.1