diff --git a/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp b/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp --- a/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp +++ b/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp @@ -44,8 +44,9 @@ test1 = 1; cv.notify_one(); Clock::time_point t0 = Clock::now(); + Clock::time_point wait_end = t0 + milliseconds(250); while (test2 == 0 && - cv.wait_for(lk, milliseconds(250)) == std::cv_status::no_timeout) + cv.wait_for(lk, wait_end - Clock::now()) == std::cv_status::no_timeout) ; Clock::time_point t1 = Clock::now(); if (runs == 0) diff --git a/libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for.pass.cpp b/libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for.pass.cpp --- a/libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for.pass.cpp +++ b/libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for.pass.cpp @@ -47,8 +47,9 @@ test1 = 1; cv.notify_one(); Clock::time_point t0 = Clock::now(); + Clock::time_point wait_end = t0 + milliseconds(250); while (test2 == 0 && - cv.wait_for(lk, milliseconds(250)) == std::cv_status::no_timeout) + cv.wait_for(lk, wait_end - Clock::now()) == std::cv_status::no_timeout) ; Clock::time_point t1 = Clock::now(); if (runs == 0)