mirror of
https://github.com/gcc-mirror/gcc.git
synced 2026-05-06 14:59:39 +02:00
libstdc++: Use 32-bit platform wait type for OpenBSD and DragonFly [PR120527]
This defines __platform_wait_t as unsigned int for OpenBSD and DragonFly. This means that std::semaphore will use unsigned int by default, and so will benefit from more efficient wait/notify ops if we start to use the OpenBSD futex(2) syscall or the DragonFly umtx(2) syscalls. We don't currently use them, but if we start to in future, it would be an ABI break to change __platform_wait_t later. libstdc++-v3/ChangeLog: PR libstdc++/120527 * include/bits/atomic_wait.h [__OpenBSD__ || __DragonFly]: Use unsigned int for __platform_wait_t. Reviewed-by: Tomasz Kamiński <tkaminsk@redhat.com>
This commit is contained in:
committed by
Jonathan Wakely
parent
a261719a1f
commit
4e2d1a1c36
@@ -108,7 +108,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||
// a mutex/condvar based wait.
|
||||
namespace __detail
|
||||
{
|
||||
# if ATOMIC_LONG_LOCK_FREE == 2
|
||||
# if defined __OpenBSD__ || defined __DragonFly__
|
||||
// These targets provide 32-bit futex-like syscalls.
|
||||
// We don't currently make use of them, but we want to in future.
|
||||
using __platform_wait_t = unsigned int;
|
||||
# elif ATOMIC_LONG_LOCK_FREE == 2
|
||||
using __platform_wait_t = unsigned long;
|
||||
# else
|
||||
using __platform_wait_t = unsigned int;
|
||||
|
||||
Reference in New Issue
Block a user