]> git.ipfire.org Git - thirdparty/gcc.git/commit
libstdc++: Pass __wait_args to internal API by const pointer
authorThomas Rodgers <trodgers@redhat.com>
Mon, 24 Apr 2023 21:06:09 +0000 (14:06 -0700)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 30 May 2025 09:02:26 +0000 (10:02 +0100)
commite071cd60347d81c52aa5815e0308264ce190ffc8
tree8f193b0cf64fad7270b4486d885d9f537e6ed7ff
parent437c147f72eab2839277d0a659b7ea833d8c102d
libstdc++: Pass __wait_args to internal API by const pointer

This change splits the __wait_args data members to a new struct
__wait_args_base and then passes that type by const pointer to the low
level implementation functions.

libstdc++-v3/ChangeLog:

* include/bits/atomic_timed_wait.h (__spin_until_impl): Accept
__wait_args as const __wait_args_base*.
(__wait_until_impl): Likewise.
(__wait_until): Likewise.
(__wait_for): Likewise.
(__atomic_wait_address_until): Pass __wait_args by address.
(__atomic_wait_address_for): Likewise.
* include/bits/atomic_wait.h (__wait_args_base): New struct.
(__wait_args): Derive from __wait_args_base.
(__wait_args::__wait_args()): Adjust ctors to call call base ctor.
(__wait_args::__wait_args(const __wait_args_base&)): New ctor.
(__wait_args::operator|=): New method.
(__wait_args::_S_flags_for): Change return type to
__wait_flags.
(__spin_impl): Accept __wait_args as const __wait_args_base*.
(__wait_impl): Likewise.
(__notify_impl): Likewise.
(__atomic_wait_address): Pass __wait_args by address.
(__atomic_wait_address_v): Likewise.
(__atomic_notify_address): Likewise.
libstdc++-v3/include/bits/atomic_timed_wait.h
libstdc++-v3/include/bits/atomic_wait.h