On Sat, Jan 10, 2026 at 2:54 PM Jonathan Wakely <[email protected]> wrote:

> libstdc++-v3/ChangeLog:
>
>         * include/bits/atomic_wait.h (__wait_args::_M_setup_proxy_wait):
>         Improve comment.
> ---
>
> Tomasz asked for this comment to be updated for the recent changes, and
> I forgot to do it.
>
> Is this clearer now?
>
This is a copy of the comment in the source file, maybe we should remove
the other one?

>
>  libstdc++-v3/include/bits/atomic_wait.h | 12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/libstdc++-v3/include/bits/atomic_wait.h
> b/libstdc++-v3/include/bits/atomic_wait.h
> index 8511e003abca..eff1be604eb4 100644
> --- a/libstdc++-v3/include/bits/atomic_wait.h
> +++ b/libstdc++-v3/include/bits/atomic_wait.h
> @@ -287,8 +287,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>         }
>
>        // Returns true if a proxy wait will be used for __addr, false
> otherwise.
> -      // If true, _M_wait_state, _M_obj, _M_obj_size, and _M_old are set.
> -      // If false, data members are unchanged.
> +      // For the first call (from _M_setup_wait) `_M_obj` will equal
> `__addr`,
> +      // and the library will decide whether to use a proxy wait.
> +      // If it returns false, all data members are unchanged.
> +      // If it returns true, _M_wait_state, _M_obj, and _M_obj_size refer
> to
> +      // the proxy, and _M_old will contain a recent value of the proxy.
> +      // Subsequent calls (from _M_on_wake) are only needed for proxy
> waits,
> +      // when `_M_obj` is not equal to `__addr`. In this case, it returns
> true
> +      // and the only effects are to update `_M_old` from the proxy.
> +      // For the calls from `_M_on_wake the argument can be nullptr,
> because
> +      // any value that is not equal to `_M_obj` has the same effect.
>        bool
>        _M_setup_proxy_wait(const void* __addr);
>
> --
> 2.52.0
>
>

Reply via email to