Date: Wed, 28 Feb 2007 17:13:34 +1030 From: Greg 'groggy' Lehey <grog@FreeBSD.org> To: Kris Kennaway <kris@obsecurity.org> Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/share/man/man9 sleep.9 Message-ID: <20070228064334.GG8399@wantadilla.lemis.com> In-Reply-To: <20070227235843.GA59138@xor.obsecurity.org> References: <200702272309.l1RN9Xum011236@repoman.freebsd.org> <20070227235843.GA59138@xor.obsecurity.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--8S1fMsFYqgBC+BN/ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline 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. --8S1fMsFYqgBC+BN/ Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (FreeBSD) iD8DBQFF5SSWIubykFB6QiMRAqJkAJ9b53uZQBRxjohMBvkbhszDqfM2IACgj0W7 lpXln3j5x87NxI/6f6xbowg= =u/rY -----END PGP SIGNATURE----- --8S1fMsFYqgBC+BN/--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070228064334.GG8399>