In message <[EMAIL PROTECTED]>, Matt Dillon writes:
>:> * Stephen McKay <[EMAIL PROTECTED]> [000805 08:49] wrote:
>:> >
>:> > Patch 2 is smaller and possibly controversial. Normally bufdaemon and
>:> > syncer are sleeping when they are told to suspend. This delays shutdown
>:> > by a few boring seconds. With this patch, it is zippier. I expect people
>:> > to complain about this shortcut, but every sleeping process should expect
>:> > to be woken for no reason at all. Basic kernel premise.
>:>
>:> You better bet it's controversial, this isn't "Basic kernel premise"
>:
>:Actually, that depends. It is definitely poor programming practice to
>:not check the condition for which you slept on wakeup.
>:
>:> *boom* *crash* *ow* :)
>:
>:Doctor: So don't do that.
>
> I gotta agree. This is very bad programming practice. There are many,
> many places in the kernel where tsleep() is called with a 0 delay and
> assumed not to return until something meaningful happens. For example,
> for handling NFS retries, some of the locking code (I think), and I
> could probably find many others.
Then this code should be changed to do the right thing, which is
to *always* check the condition being slept on before proceeding.
--
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
[EMAIL PROTECTED] | TCP/IP since RFC 956
FreeBSD coreteam member | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message