From bd2eb2fe72b2276de487a6b1de1c4d5acb2ecdea Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Thu, 3 Sep 2015 07:13:01 -0400 Subject: [PATCH] Reconcile condition_variable::wait_for(pred) with wait_until(pred). --- include/boost/fiber/condition.hpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/include/boost/fiber/condition.hpp b/include/boost/fiber/condition.hpp index cc114b03..12cd269c 100644 --- a/include/boost/fiber/condition.hpp +++ b/include/boost/fiber/condition.hpp @@ -160,12 +160,9 @@ public: template< typename LockType, typename Rep, typename Period, typename Pred > bool wait_for( LockType & lt, std::chrono::duration< Rep, Period > const& timeout_duration, Pred pred) { - while ( ! pred() ) { - if ( cv_status::timeout == wait_for( lt, timeout_duration) ) { - return pred(); - } - } - return true; + return wait_until( lt, + std::chrono::high_resolution_clock::now() + timeout_duration, + pred); } };