cvs commit: src/share/man/man9 sleep.9

Greg 'groggy' Lehey grog at FreeBSD.org
Wed Feb 28 06:43:36 UTC 2007


On Tuesday, 27 February 2007 at 18:58:43 -0500, Kris Kennaway wrote:
> On Tue, Feb 27, 2007 at 11:09:32PM +0000, Greg Lehey wrote:
>
>>> -function
>>> -does not work reliably if more than one thread is sleeping on the same address;
>>> -in this case it is possible for an unrelated thread to be woken.
>>> -This thread will ignore the wakeup, and the correct process will never be
>>> -woken.
>>> +function does not work reliably if unrelated threads are sleeping on the same
>>> +address.
>>> +In this case, if a wakeup for one group of threads is delivered to a member of
>>> +another group, that thread will ignore the wakeup, and the correct thread will
>>> +never be woken up.
>>> +It is the programmer's responsibility to choose a unique
>>> +.Fa chan
>>> +value.
>>> +In case of doubt, do not use
>>> +.Fn wakeup_one .
>
> I don't like this recommendation, since it directs the programmer to
> introduce potentially serious performance bottlenecks at the expense
> of clear thinking about their code to avoid introducing the bug in the
> first place.

How would you address the case?  Recall that we're talking here about
two different programmers, and you don't even know who the second one
is.  It would be nice to have some mechanism like WITLESS to detect
the problem, but I can't see how it would work.

Greg
--
See complete headers for address and phone numbers.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/cvs-src/attachments/20070228/f962c94f/attachment.pgp


More information about the cvs-src mailing list