- /* we need a sleep action (even when the timeout is infinite) to be notified of host failures */
- RawImplPtr synchro(new RawImpl([this, issuer]() {
- this->unregister_simcall(&issuer->simcall_);
- issuer->waiting_synchro_ = nullptr;
- issuer->exception_ = nullptr;
- auto* observer = dynamic_cast<kernel::actor::ActivityWaitSimcall*>(issuer->simcall_.observer_);
- xbt_assert(observer != nullptr);
- observer->set_result(true);
- }));
- synchro->set_host(issuer->get_host()).set_timeout(timeout).start();
- synchro->register_simcall(&issuer->simcall_);