- // Wait function taking a plain double as time:
-
- std::cv_status wait_until(const std::unique_lock<Mutex>& lock, double timeout_time);
- std::cv_status wait_for(const std::unique_lock<Mutex>& lock, double duration);
- template <class P> bool wait_until(const std::unique_lock<Mutex>& lock, double timeout_time, P pred)
- {
- while (not pred())
- if (this->wait_until(lock, timeout_time) == std::cv_status::timeout)
- return pred();
- return true;
- }
- template <class P> bool wait_for(const std::unique_lock<Mutex>& lock, double duration, P pred)
- {
- return this->wait_until(lock, SIMIX_get_clock() + duration, std::move(pred));
- }
+ /// Wait until the given instant (specified as a plain double)
+ std::cv_status wait_until(const std::unique_lock<s4u::Mutex>& lock, double timeout_time);
+ /// Wait for the given amount of seconds (specified as a plain double)
+ std::cv_status wait_for(const std::unique_lock<s4u::Mutex>& lock, double duration);