On Mon, 12 Jan 2026 at 09:01, Tomasz Kaminski <[email protected]> wrote: > > > > 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?
Oh, I didn't forget, I just put it in atomic.cc not the header! Maybe it makes more sense in atomic.cc since it's about the implementation details and doesn't need to be visible to users browsing the headers. But I slightly prefer the wording in the newer patch, so I'll merge that into the comment in atomic.cc and in the header just put a "See comments in arc/c++20/atomic.cc" note. >> >> >> 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 >>
