-smx_activity_t SIMIX_process_join(smx_actor_t issuer, smx_actor_t process, double timeout)
-{
- smx_activity_t res = issuer->sleep(timeout);
- intrusive_ptr_add_ref(res.get());
- SIMIX_process_on_exit(process,
- [](int, void* arg) {
- auto sleep = static_cast<simgrid::kernel::activity::SleepImpl*>(arg);
- if (sleep->surf_action_)
- sleep->surf_action_->finish(simgrid::kernel::resource::Action::State::FINISHED);
- intrusive_ptr_release(sleep);
- },
- res.get());
- return res;
-}
-