On 2021-05-17 09:43, Jonathan Wakely wrote:
On 14/05/21 18:09 +0100, Jonathan Wakely wrote: On 13/05/21 18:54
-0700, Thomas Rodgers wrote: From: Thomas Rodgers
Please ignore the previous patch. This one removes the need to carry
any
extra state in the case of a 'laundered' atomic wait.
li
On 14/05/21 18:09 +0100, Jonathan Wakely wrote:
On 13/05/21 18:54 -0700, Thomas Rodgers wrote:
From: Thomas Rodgers
Please ignore the previous patch. This one removes the need to carry any
extra state in the case of a 'laundered' atomic wait.
libstdc++/ChangeLog:
* include/bits/atomic
On 13/05/21 18:54 -0700, Thomas Rodgers wrote:
From: Thomas Rodgers
Please ignore the previous patch. This one removes the need to carry any
extra state in the case of a 'laundered' atomic wait.
libstdc++/ChangeLog:
* include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
un
From: Thomas Rodgers
Please ignore the previous patch. This one removes the need to carry any
extra state in the case of a 'laundered' atomic wait.
libstdc++/ChangeLog:
* include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
until value change observed.
(__waiter_base
From: Thomas Rodgers
libstdc++/ChangeLog:
* include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
until value change observed.
(__waiter_base::_M_a): Renamed member from _M_addr, changed
type to uintptr_t.
(__waiter_base::_S_wait_addr): Change return ty
On 03/05/21 09:43 -0700, Thomas Rodgers wrote:
From: Thomas Rodgers
This should also be backported to gcc-11
The additional _M_laundered data member changes the object layout.
That isn't safe for the branch. Would it be possible to smuggle that
flag in the least significant bit of the _M_addr
From: Thomas Rodgers
This should also be backported to gcc-11
libstdc++/ChangeLog:
* include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
until observe value change.
(__waiter_base::_M_laundered): New member.
(__watier_base::_M_notify): Check _M_laundered to