Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 07 Aug 2000 12:03:43 -0700
From:      David Greenman <dg@root.com>
To:        Poul-Henning Kamp <phk@critter.freebsd.dk>
Cc:        Alfred Perlstein <bright@wintelcom.net>, Matt Dillon <dillon@earth.backplane.com>, Mike Smith <msmith@FreeBSD.ORG>, Stephen McKay <mckay@thehub.com.au>, freebsd-current@FreeBSD.ORG, dillon@FreeBSD.ORG
Subject:   Re: Ugly, slow shutdown 
Message-ID:  <200008071903.MAA03649@implode.root.com>
In-Reply-To: Your message of "Mon, 07 Aug 2000 20:34:03 %2B0200." <10526.965673243@critter.freebsd.dk> 

next in thread | previous in thread | raw e-mail | index | archive | help
>>Can you give a reason why we'll have to now start coding defensively
>>because our arguments to tsleep() are just "advisory" now?
>
>It is not something we "suddenly have to do" it's been The Right Way
>even since I first sharpened my teeth on unix kernels many years ago.

   Uh, Poul, I think you're full of it. The previous behavior of tsleep where
you can make assumptions about who wakes you and under what conditions is a
long and well established idiom. We (the kernel developers of BSD) have always
coded to the established kernel programming interface and most of us consider
it bad form to check for conditions which can't happen because the kernel
API doesn't allow it. For example, we don't check for a NULL return from malloc
in the case of !NO_WAIT, because we knew that the code would never do that.
There are many other examples of similar assumptions in the kernel. We write
the code to be efficient and only check for bogus conditions that might
happen. The only exception to this is programatic ASSERTs that do internal
consistency checks, but the purpose of those is quite different.

-DG

David Greenman
Co-founder, The FreeBSD Project - http://www.freebsd.org
Manufacturer of high-performance Internet servers - http://www.terasolutions.com
Pave the road of life with opportunities.


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?200008071903.MAA03649>