aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Rodgers <rodgert@appliantology.com>2022-02-10 10:12:36 -0800
committerThomas Rodgers <rodgert@appliantology.com>2022-02-10 10:14:36 -0800
commitb25a7c05f120e46a60430dcefe529c72303b7022 (patch)
tree8151ca6aaa878e3447dfc95227785949e6d45b86
parentc22f3fb780775b91548e32937a3ce1095a7c72a3 (diff)
downloadgcc-b25a7c05f120e46a60430dcefe529c72303b7022.zip
gcc-b25a7c05f120e46a60430dcefe529c72303b7022.tar.gz
gcc-b25a7c05f120e46a60430dcefe529c72303b7022.tar.bz2
libstdc++: Strengthen memory order for atomic<T>::wait/notify
This changes the memory order used in the spin wait code to match that of libc++. libstdc++-v3/ChangeLog: * include/bits/atomic_wait.h (__waiter_base::_S_do_spin, __waiter_base::_S_do_spin_v): Change memory order from relaxed to acquire.
-rw-r--r--libstdc++-v3/include/bits/atomic_wait.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/libstdc++-v3/include/bits/atomic_wait.h b/libstdc++-v3/include/bits/atomic_wait.h
index 6ce7f93..125b1ca 100644
--- a/libstdc++-v3/include/bits/atomic_wait.h
+++ b/libstdc++-v3/include/bits/atomic_wait.h
@@ -332,7 +332,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
else
{
- __atomic_load(__addr, &__val, __ATOMIC_RELAXED);
+ __atomic_load(__addr, &__val, __ATOMIC_ACQUIRE);
}
return __atomic_spin(__pred, __spin);
}
@@ -353,7 +353,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__platform_wait_t& __val,
_Spin __spin = _Spin{ })
{
- __atomic_load(__addr, &__val, __ATOMIC_RELAXED);
+ __atomic_load(__addr, &__val, __ATOMIC_ACQUIRE);
return __atomic_spin(__pred, __spin);
}