On 17-Jan-01 Matt Dillon wrote:
>:* Alfred Perlstein <[EMAIL PROTECTED]> [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 <[EMAIL PROTECTED]> -- 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 [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to