[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