From owner-cvs-all@FreeBSD.ORG Mon Mar 5 09:36:22 2007 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8F10C16A402; Mon, 5 Mar 2007 09:36:22 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.freebsd.org (Postfix) with ESMTP id 6342713C4AA; Mon, 5 Mar 2007 09:36:22 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id 03D5447299; Mon, 5 Mar 2007 04:36:22 -0500 (EST) Date: Mon, 5 Mar 2007 09:36:21 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Greg Lehey In-Reply-To: <200703042342.l24Ngwmu040217@repoman.freebsd.org> Message-ID: <20070305092518.F44433@fledge.watson.org> References: <200703042342.l24Ngwmu040217@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/share/man/man9 sleep.9 X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Mar 2007 09:36:22 -0000 On Sun, 4 Mar 2007, Greg Lehey wrote: > grog 2007-03-04 23:42:58 UTC > > FreeBSD src repository > > Modified files: > share/man/man9 sleep.9 > Log: > Rearrange function descriptions in more logical order. > Be less alarmist about the dangers of abusing wakeup_one(). How would you feel about language along the lines of: Prior to the introduction of wakeup_one(), using a single wait channel address was possible as long as all sleepers looped around the sleep call re-checking the condition after each wakeup. However, with the addition of wakeup_one(), combining wait channels for multiple purposes may lead easily to bugs involving lost wakeups, and is strongly discouraged. It is recommended that consumers of the sleep(9) programming interface carefully follow the convention of using only wait channels associated with memory addresses explicitly allocated for this purpose, and not overload or extend the semantics of existing wait channels without careful analysis in order to avoid potential channel collisions. Programmers may find the cv(9) interface easier to use correctly, as it has explicit condition variable data structures. That way we combine warnings about potential misuse with a recommendation for the cv(9) API. Robert N M Watson Computer Laboratory University of Cambridge