Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Don't make exception on timeout.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Tue, 16 Apr 2019 12:08:42 +0000 (14:08 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Tue, 16 Apr 2019 12:47:16 +0000 (14:47 +0200)
It breaks for example xbt_cond_timedwait which is expected to report timeout by
a regular return.

src/kernel/activity/SynchroRaw.cpp

index de052c1..facb9d0 100644 (file)
@@ -73,9 +73,7 @@ void RawImpl::finish()
     XBT_DEBUG("RawImpl::finish(): host '%s' failed", simcall->issuer->get_host()->get_cname());
     simcall->issuer->context_->iwannadie = true;
     simcall->issuer->exception_ = std::make_exception_ptr(HostFailureException(XBT_THROW_POINT, "Host failed"));
-  } else if (state_ == SIMIX_SRC_TIMEOUT) {
-    simcall->issuer->exception_ = std::make_exception_ptr(TimeoutError(XBT_THROW_POINT, "Synchronization timeout"));
-  } else {
+  } else if (state_ != SIMIX_SRC_TIMEOUT) {
     xbt_die("Internal error in RawImpl::finish() unexpected synchro state %d", static_cast<int>(state_));
   }