On Tue, Mar 13, 2012 at 09:54:36AM -0700, Richard Henderson wrote:
> On 03/10/12 09:43, Torvald Riegel wrote:
> > libitm: Fix lost wake-up in serial lock.
> >
> > PR libitm/52526
> > * config/linux/rwlock.cc (GTM::gtm_rwlock::read_lock): Fix lost
> > wak
On 03/10/12 09:43, Torvald Riegel wrote:
> libitm: Fix lost wake-up in serial lock.
>
> PR libitm/52526
> * config/linux/rwlock.cc (GTM::gtm_rwlock::read_lock): Fix lost
> wake-up.
Ok.
Jakub needs to approve this for 4.7.0; otherwise ok for 4.7.1.
r~
This patch fixes PR52526, a lost wake-up in libitm (ie, one ore more
threads could hang and not get woken up anymore).
The problem was missing handling of one corner case in the futex-based
serial lock implementation (config/linux/rwlock.cc, read_lock()):
Multiple readers would set READERS to 1 an