From: Gabriel Corona Date: Tue, 21 Jun 2016 08:08:03 +0000 (+0200) Subject: [s4u] Add ConditionVariable::wait(lock, predicate) X-Git-Tag: v3_14~911^2 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/7a05cdba83255a1a6b4da324aa2f431a0cffe397 [s4u] Add ConditionVariable::wait(lock, predicate) --- diff --git a/include/simgrid/s4u/conditionVariable.hpp b/include/simgrid/s4u/conditionVariable.hpp index 9c9c58ac65..d5b9244fb6 100644 --- a/include/simgrid/s4u/conditionVariable.hpp +++ b/include/simgrid/s4u/conditionVariable.hpp @@ -51,7 +51,25 @@ public: * Wait functions */ void wait(std::unique_lock& lock); - void wait_for(std::unique_lock& lock, double time); + // TODO, return std::cv_status + void wait_for(std::unique_lock& lock, double duration); + // TODO, wait_until + + /** Variant which takes a predice */ + template + void wait(std::unique_lock& lock, P pred) + { + while (!pred()) + wait(lock); + } + // TODO, return std::cv_status + template + void wait_for(std::unique_lock& lock, double duration, P pred) + { + while (!pred()) + wait(lock, duration); + } + // TODO,wait_until /** * Notify functions