- RawImplPtr synchro(new RawImpl());
- (*synchro).set_host(issuer->get_host()).set_timeout(timeout).start();
- synchro->simcalls_.push_front(simcall);
- issuer->waiting_synchro = std::move(synchro);
- sleeping_.push_back(*simcall->issuer_);
+ RawImplPtr synchro(new RawImpl([this, issuer]() {
+ this->remove_sleeping_actor(*issuer);
+ if (issuer->simcall_.call_ == simix::Simcall::COND_WAIT_TIMEOUT)
+ simcall_cond_wait_timeout__set__result(&issuer->simcall_, 1);
+ }));
+ synchro->set_host(issuer->get_host()).set_timeout(timeout).start();
+ synchro->register_simcall(&issuer->simcall_);
+ sleeping_.push_back(*issuer);