mirror of git://gcc.gnu.org/git/gcc.git
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 |
||
|---|---|---|
| .. | ||
| async | ||
| call_once | ||
| condition_variable | ||
| condition_variable_any | ||
| future | ||
| headers | ||
| lock | ||
| lock_guard | ||
| mutex | ||
| once_flag/cons | ||
| packaged_task | ||
| promise | ||
| recursive_mutex | ||
| recursive_timed_mutex | ||
| scoped_lock | ||
| shared_future | ||
| shared_lock | ||
| shared_mutex | ||
| shared_timed_mutex | ||
| this_thread | ||
| thread | ||
| timed_mutex | ||
| try_lock | ||
| unique_lock | ||