Subject: panic: old sleep...
To: None <current-users@NetBSD.ORG>
From: Darren Reed <>
List: current-users
Date: 02/20/1995 14:29:29
What's the correct usage of sleep() within the kernel ?

I just tried some code of mine which works under SunOS4, but when
I tried it out just now, I got a panic, sleep() had been called with
a value > PZERO (23 I think it was).  Looking at sleep(), it is obvious
what the problem is:
	if (priority > PZERO) {
		printf("sleep called with priority %d > PZERO, wchan: %x\n",
		    priority, ident);
		panic("old sleep");
(so I #undef DIAGNOSTIC and no panic but my code is still "buggy").

I call sleep like this:
	sleep(buffer, PZERO+1);
(I'm sleeping on a read of a pseudo device which has no data, currently,
 and I want to block on the operation but be able to interrupt it with

Are there any docs on doing this for NetBSD/4.4BSD ?  Or can anyone
help me out ?


p.s. has anyone thought that perhaps panic messages should go through log()
     rather than printf() in the kernel ?