As currently implemented, condition_variable always ultimately waits against std::chrono::system_clock. This clock can be changed in arbitrary ways by the user which may result in us waking up too early or too late when measured against the caller-supplied clock. We can't (yet) do much about waking up too late (PR 41861), but if we wake up too early we must return cv_status::no_timeout to indicate a spurious wakeup rather than incorrectly returning cv_status::timeout. 2018-08-01 Mike Crowe <mac@mcrowe.com> * include/std/condition_variable (wait_until): Only report timeout if we really have timed out when measured against the caller-supplied clock. * testsuite/30_threads/condition_variable/members/2.cc: Add test case to confirm above behaviour. From-SVN: r263224
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
async | Loading commit data... | |
call_once | Loading commit data... | |
condition_variable | Loading commit data... | |
condition_variable_any | Loading commit data... | |
future | Loading commit data... | |
headers | Loading commit data... | |
lock | Loading commit data... | |
lock_guard | Loading commit data... | |
mutex | Loading commit data... | |
once_flag/cons | Loading commit data... | |
packaged_task | Loading commit data... | |
promise | Loading commit data... | |
recursive_mutex | Loading commit data... | |
recursive_timed_mutex | Loading commit data... | |
scoped_lock | Loading commit data... | |
shared_future | Loading commit data... | |
shared_lock | Loading commit data... | |
shared_mutex | Loading commit data... | |
shared_timed_mutex | Loading commit data... | |
this_thread | Loading commit data... | |
thread | Loading commit data... | |
timed_mutex | Loading commit data... | |
try_lock | Loading commit data... | |
unique_lock | Loading commit data... |