pthread_cond_broadcast and FUTEX_REQUEUE

Jakub Jelinek jakub at redhat.com
Tue May 18 08:50:41 UTC 2004


On Tue, May 18, 2004 at 12:40:54PM +0530, Dinakar Guniguntala wrote:
> I noticed that pthread_cond_broadcast still uses the FUTEX_REQUEUE
> functionality in the latest CVS sources whereas this has been
> removed in RHEL 3.0 update 2. Since there seems to be a testcase
> that demonstrates this problem,
> (http://bugme.osdl.org/show_bug.cgi?id=2364)
> I was wondering if the fix will get into CVS as well.
> 
> I had also previously noted that another fix for this problem would be to
> continue to use FUTEX_REQUEUE without releasing the internal
> condvar lock to prevent corruption of the counters.

There are actually 2 different problems with current pthread_cond_broadcast:
https://www.redhat.com/archives/phil-list/2004-April/msg00002.html
http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=115349
I'm aware of.
The latter is fixed by changes Ulrich wrote during the last days
and are currently in testing, the former can be solved by
adding a new futex(2) operation, FUTEX_CMP_REQUEUE, plus
corresponding glibc changes.
Please wait a few days until these changes get enough testing,
then at least the #115349 fix can go in immediately, the latter
needs to wait for kernel people buy-in.

	Jakub





More information about the Phil-list mailing list