X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fb5e2f5efff54c1cba2814c60bd099b81ac5f091..d0a8cb4f92bd372f091430671bd30f4422674d76:/src/s4u/s4u_Actor.cpp diff --git a/src/s4u/s4u_Actor.cpp b/src/s4u/s4u_Actor.cpp index e60f73d5fa..268576eba3 100644 --- a/src/s4u/s4u_Actor.cpp +++ b/src/s4u/s4u_Actor.cpp @@ -328,18 +328,22 @@ void sleep_for(double duration) } kernel::actor::ActorImpl* issuer = kernel::actor::ActorImpl::self(); + kernel::actor::ActorSleepSimcall observer(issuer); + Actor::on_sleep(*issuer->get_ciface()); issuer->get_ciface()->on_this_sleep(*issuer->get_ciface()); - kernel::actor::simcall_blocking([issuer, duration]() { - if (MC_is_active() || MC_record_replay_is_active()) { - MC_process_clock_add(issuer, duration); - issuer->simcall_answer(); - return; - } - kernel::activity::ActivityImplPtr sync = issuer->sleep(duration); - sync->register_simcall(&issuer->simcall_); - }); + kernel::actor::simcall_blocking( + [issuer, duration]() { + if (MC_is_active() || MC_record_replay_is_active()) { + MC_process_clock_add(issuer, duration); + issuer->simcall_answer(); + return; + } + kernel::activity::ActivityImplPtr sync = issuer->sleep(duration); + sync->register_simcall(&issuer->simcall_); + }, + &observer); Actor::on_wake_up(*issuer->get_ciface()); issuer->get_ciface()->on_this_wake_up(*issuer->get_ciface());