aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Rodgers <rodgert@twrodgers.com>2021-05-17 11:41:26 -0700
committerThomas Rodgers <rodgert@twrodgers.com>2021-05-17 12:05:06 -0700
commit346cbaf57828aef190de93271c0eb3f10c9aca61 (patch)
tree7480a5ab7ce1b1e9bfacc9e277517e8be1f33027 /gcc
parent58f7c7e098b79c96403c8341823ec3ba1e8b3945 (diff)
downloadgcc-346cbaf57828aef190de93271c0eb3f10c9aca61.zip
gcc-346cbaf57828aef190de93271c0eb3f10c9aca61.tar.gz
gcc-346cbaf57828aef190de93271c0eb3f10c9aca61.tar.bz2
libstdc++: Fix wrong thread waking on notify [PR100334]
Fixes https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100334 libstdc++-v3/ChangeLog: * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop until value change observed. (__waiter_base::_M_laundered): New member. (__waiter_base::_M_notify): Check _M_laundered to determine whether to wake one or all. (__detail::__atomic_compare): Return true if call to __builtin_memcmp() == 0. (__waiter_base::_S_do_spin_v): Adjust predicate. * testsuite/29_atomics/atomic/wait_notify/100334.cc: New test.
Diffstat (limited to 'gcc')
0 files changed, 0 insertions, 0 deletions