[PATCH] Fix lost wake-up when pthread_rwlock_timedrwlock times out.
Torvald Riegel
triegel@redhat.com
Wed Apr 29 16:15:00 GMT 2015
On Fri, 2015-04-24 at 17:53 +0000, Joseph Myers wrote:
> On Wed, 22 Apr 2015, Torvald Riegel wrote:
>
> > If we set up a rwlock to prefer writers (and disallow recursive rdlock
> > acquisitions), then readers will block for writers that are blocked to
> > acquire the lock (otherwise, readers could constantly enter and exit,
> > and the writer would never get the lock). However, the existing
> > implementation did not wake such readers when the writer timed out.
> > This patch adds the missing wake-up.
> > There's no similar case for writers being blocked on readers.
> >
> > Tested on x86_64-linux. OK?
> >
> > 2015-04-22 Torvald Riegel <triegel@redhat.com>
> >
> > * nptl/pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock): Add
> > missing wake-up of readers.
> > * nptl/tst-rwlock15.c: New file.
> > * nptl/Makefile (tests): Add new test.
>
> If this was a bug that was user-visible in a release, there should be a
> bug filed in Bugzilla for it and appropriate [BZ #N] used.
>
Thanks for the reminder, here's an updated version. I also added a
small performance optimization.
Tested on x86_64-linux. OK?
2015-04-28 Torvald Riegel <triegel@redhat.com>
[BZ #18324]
* nptl/pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock): Add
missing wake-up of readers.
* nptl/tst-rwlock15.c: New file.
* nptl/Makefile (tests): Add new test.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rwlock-fixtimeout.patch
Type: text/x-patch
Size: 5444 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20150429/07e9f1ab/attachment.bin>
More information about the Libc-alpha
mailing list