Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Define CommImpl::test().
[simgrid.git] / src / kernel / activity / IoImpl.cpp
index cdc88bf0a6db2a3f215103df0479fe1d1f886777..c7bc45794ef55898dd036a975f79e685c83cefb0 100644 (file)
@@ -92,13 +92,11 @@ void IoImpl::post()
 
 void IoImpl::finish()
 {
+  XBT_DEBUG("IoImpl::finish() in state %s", to_c_str(state_));
   while (not simcalls_.empty()) {
     const s_smx_simcall* simcall = simcalls_.front();
     simcalls_.pop_front();
     switch (state_) {
-      case State::DONE:
-        /* do nothing, synchro done */
-        break;
       case State::FAILED:
         simcall->issuer_->context_->set_wannadie();
         simcall->issuer_->exception_ =
@@ -108,11 +106,11 @@ void IoImpl::finish()
         simcall->issuer_->exception_ = std::make_exception_ptr(CancelException(XBT_THROW_POINT, "I/O Canceled"));
         break;
       case State::TIMEOUT:
-        XBT_DEBUG("IoImpl::finish(): execution timeouted");
         simcall->issuer_->exception_ = std::make_exception_ptr(simgrid::TimeoutException(XBT_THROW_POINT, "Timeouted"));
         break;
       default:
-        xbt_die("Internal error in IoImpl::finish(): unexpected synchro state %d", static_cast<int>(state_));
+        xbt_assert(state_ == State::DONE, "Internal error in IoImpl::finish(): unexpected synchro state %s",
+                   to_c_str(state_));
     }
 
     simcall->issuer_->waiting_synchro_ = nullptr;