X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e92ead61dede9c7ccb3e5fc5a889f762e9ded744..cda7600c05eaa0eb26fc870b911703f806bdaea2:/include/simgrid/s4u/actor.hpp diff --git a/include/simgrid/s4u/actor.hpp b/include/simgrid/s4u/actor.hpp index 5039f84983..f5de6051c9 100644 --- a/include/simgrid/s4u/actor.hpp +++ b/include/simgrid/s4u/actor.hpp @@ -258,13 +258,26 @@ using ActorPtr = Actor::Ptr; namespace this_actor { /** Block the actor sleeping for that amount of seconds (may throws hostFailure) */ - XBT_PUBLIC(void) sleep(double duration); + XBT_PUBLIC(void) sleep_for(double duration); + XBT_PUBLIC(void) sleep_until(double timeout); template - inline void sleep(std::chrono::duration duration) + inline void sleep_for(std::chrono::duration duration) { auto seconds = std::chrono::duration_cast(duration); - sleep(seconds.count()); + this_actor::sleep_for(seconds.count()); + } + template + inline void sleep_until(const SimulationTimePoint& timeout_time) + { + auto timeout_native = std::chrono::time_point_cast(timeout_time); + this_actor::sleep_until(timeout_native.time_since_epoch().count()); + } + + XBT_ATTRIB_DEPRECATED("Use sleep_for()") + inline void sleep(double duration) + { + return sleep_for(duration); } /** Block the actor, computing the given amount of flops */