X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f8930986cd96dc07bf6d3f9d800a3935541340d9..4141cd9660259caa66e2e9af10873e53402b4812:/src/simix/smx_io.cpp diff --git a/src/simix/smx_io.cpp b/src/simix/smx_io.cpp index b82e48d1ff..4b8ecbc42f 100644 --- a/src/simix/smx_io.cpp +++ b/src/simix/smx_io.cpp @@ -44,17 +44,19 @@ void SIMIX_io_finish(smx_activity_t synchro) /* do nothing, synchro done */ break; case SIMIX_FAILED: - SMX_EXCEPTION(simcall->issuer, io_error, 0, "IO failed"); + simcall->issuer->exception_ = + std::make_exception_ptr(simgrid::StorageFailureException(XBT_THROW_POINT, "Storage failed")); break; case SIMIX_CANCELED: - simcall->issuer->exception = std::make_exception_ptr(simgrid::CancelException(XBT_THROW_POINT, "I/O Canceled")); + simcall->issuer->exception_ = + std::make_exception_ptr(simgrid::CancelException(XBT_THROW_POINT, "I/O Canceled")); break; default: xbt_die("Internal error in SIMIX_io_finish: unexpected synchro state %d", static_cast(synchro->state_)); } simcall->issuer->waiting_synchro = nullptr; - if (simcall->issuer->host_->is_on()) + if (simcall->issuer->get_host()->is_on()) SIMIX_simcall_answer(simcall); else simcall->issuer->context_->iwannadie = true;