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