In message <[EMAIL PROTECTED]>, Stephen McKay writes:
>Regardless of the history of it all, FreeBSD is full of places where
>unexpected wakeups can stuff you right up. Should we regard tsleep() like
>the older sleep() call, as suspect, and program defensively? Should we
>be pragmatic, admit "We've gotten away with it so far", and document the
>"no sudden wakeups" behaviour?
>I quite like the general principle outlined in one of the earlier replies,
>that a while loop can be shown to be correct through a local code reading,
>but a simple conditional must be verified by reading all the rest of the
>code. That's close to the same argument I use against global variables.
>Their use is too hard to verify as correct.
I support this notion with a footnote to the effect that if the test
is expensive the while() can be left out if a comment points out
exactly why the while() isn't needed.
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