+2020-01-07 Thomas Rodgers <trodgers@redhat.com>
+
+ * include/std/condition_variable
+ (condition_variable_any::wait_on): Rename to match current draft
+ standard.
+ (condition_variable_any::wait_on_until): Likewise.
+ (condition_variable_any::wait_on_for): Likewise.
+ * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
+ Adjust tests to account for renamed methods.
+
2020-01-07 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/92124
#ifdef __cpp_lib_jthread
template <class _Lock, class _Predicate>
- bool wait_on(_Lock& __lock,
- stop_token __stoken,
- _Predicate __p)
+ bool wait(_Lock& __lock,
+ stop_token __stoken,
+ _Predicate __p)
{
if (__stoken.stop_requested())
{
}
template <class _Lock, class _Clock, class _Duration, class _Predicate>
- bool wait_on_until(_Lock& __lock,
- stop_token __stoken,
- const chrono::time_point<_Clock, _Duration>& __abs_time,
- _Predicate __p)
+ bool wait_until(_Lock& __lock,
+ stop_token __stoken,
+ const chrono::time_point<_Clock, _Duration>& __abs_time,
+ _Predicate __p)
{
if (__stoken.stop_requested())
{
}
template <class _Lock, class _Rep, class _Period, class _Predicate>
- bool wait_on_for(_Lock& __lock,
- stop_token __stoken,
- const chrono::duration<_Rep, _Period>& __rel_time,
- _Predicate __p)
+ bool wait_for(_Lock& __lock,
+ stop_token __stoken,
+ const chrono::duration<_Rep, _Period>& __rel_time,
+ _Predicate __p)
{
auto __abst = std::chrono::steady_clock::now() + __rel_time;
- return wait_on_until(__lock,
- std::move(__stoken),
- __abst,
- std::move(__p));
+ return wait_until(__lock,
+ std::move(__stoken),
+ __abst,
+ std::move(__p));
}
#endif
};
using namespace::std::literals;
-void test_wait_on_stop()
+void test_wait_stop()
{
bool ready = false;
std::mutex mtx;
std::thread t([&ready, &mtx, &cv, tok]
{
std::unique_lock lck(mtx);
- auto res = cv.wait_on(lck, tok, [&ready] { return ready; });
+ auto res = cv.wait(lck, tok, [&ready] { return ready; });
if (!res)
{
VERIFY(tok.stop_requested());
VERIFY(src.stop_requested());
}
-void test_wait_on_until(bool ck = true)
+void test_wait_until(bool ck = true)
{
bool ready = false;
std::mutex mtx;
std::thread t([ck, &ready, &mtx, &cv, abst, tok]
{
std::unique_lock lck(mtx);
- auto res = cv.wait_on_until(lck, tok, abst, [&ready] { return ready; });
+ auto res = cv.wait_until(lck, tok, abst, [&ready] { return ready; });
if (!res && ck)
{
VERIFY(tok.stop_requested());
}
}
-void test_wait_on_for(bool ck = true)
+void test_wait_for(bool ck = true)
{
bool ready = false;
std::mutex mtx;
std::thread t([ck, &ready, &mtx, &cv, tok]
{
std::unique_lock lck(mtx);
- auto res = cv.wait_on_for(lck, tok, 1.0s, [&ready] { return ready; });
+ auto res = cv.wait_for(lck, tok, 1.0s, [&ready] { return ready; });
if (!res && ck)
{
VERIFY(tok.stop_requested());
int main()
{
- test_wait_on_stop();
- test_wait_on_until(false);
- test_wait_on_until();
- test_wait_on_for();
- test_wait_on_for(false);
+ test_wait_stop();
+ test_wait_until(false);
+ test_wait_until();
+ test_wait_for();
+ test_wait_for(false);
return 0;
}