9fans archive / 1996 / 10 / 59 /    prev next

From: presotto@pla... presotto@pla...
Subject: No subject
Date: Thu, 17 Oct 1996 10:56:13 -0400

Ncube has had problems with the fact that proc.c requires all
Rendez structures to not be reallocatable, i.e., they can't
exist on stacks or in objects that are freed.  If anyone cares,
I have a rewrite of sleep/wakeup that gets around that.
The shipped kernel should be clean this way so that it shouldn't
be a problem to anyone that hasn't been hacking hard.

They also found a neat bug in pexit().  Move the unlock on line
691 to after the wakeup.  Otherwise you can blow up indirecting
through a null reference.

			p->nwait++;
			unlock(&p->exl);

			wakeup(&p->waitr);

goes to

			p->nwait++;

			wakeup(&p->waitr);
			unlock(&p->exl);