Date: Wed, 17 Jan 2001 11:21:15 -0800 (PST) From: John Baldwin <jhb@FreeBSD.org> To: Matt Dillon <dillon@earth.backplane.com> Cc: current@FreeBSD.org, arch@FreeBSD.org, Soren Schmidt <sos@freebsd.dk>, Randell Jesup <rjesup@wgate.com>, Alfred Perlstein <bright@wintelcom.net> Subject: Re: HEADS-UP: await/asleep removal imminent Message-ID: <XFMail.010117112115.jhb@FreeBSD.org> In-Reply-To: <200101171907.f0HJ7Qe48680@earth.backplane.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 17-Jan-01 Matt Dillon wrote: >:* Alfred Perlstein <bright@wintelcom.net> [010117 09:24] wrote: >:> >:> I'm not going to axe it for a few days, this is a really amazing >:> API that Matt added, the problem is utility and useage over code >:> complexity. >:> >:> It's just a proposal. >: >:I found several places where it may be useful, but I'm not sure if the >:benefits outweigh the gains. >:... >: >:The lock must be unwound becasue we're calling MGETHDR with M_TRYWAIT. >:If wae used M_TRY'A'WAIT the code would probably look something like >:this: > > The basic premis of using asleep()/await() is to allow you to > propogate a 'blocking condition' back up to a higher level rather > then blocking deep in side the kernel. Gotcha. Given that, if we switch to using condition variables for this, why not have the low level code return a pointer to a cv to wait on? This would do the same thing using an existing API (now) and I think would serve the same purposes as your API. Returning NULL for a cv would mean that no sleep was required. -- John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.010117112115.jhb>