- switch (state_) {
- case State::DONE:
- /* do nothing, synchro done */
- break;
- case State::FAILED:
- simcall->issuer_->context_->set_wannadie();
- simcall->issuer_->exception_ =
- std::make_exception_ptr(StorageFailureException(XBT_THROW_POINT, "Storage failed"));
- break;
- case State::CANCELED:
- 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_));
- }