- synchro = SIMIX_synchro_wait(issuer->host_, timeout);
- synchro->simcalls_.push_front(&issuer->simcall);
- issuer->waiting_synchro = synchro;
+ RawImplPtr synchro(new RawImpl([this, issuer]() {
+ this->remove_sleeping_actor(*issuer);
+ simix::marshal<bool>(issuer->simcall_.result_, true);
+ }));
+ synchro->set_host(issuer->get_host()).set_timeout(timeout).start();
+ synchro->register_simcall(&issuer->simcall_);