9fans archive / 2000 / 07 / 521 prev next
From: presotto@pla...
Subject: Kernel question: i386 test-and-set problem
Date: Thu, 20 Jul 2000 13:09:30 -0400
r->p is either 0 or a valid process number. Therefore, the r->p
access shouldn't cause a crash. We later check the p->r against r
under lock to make sure the process is still waiting on that
rendezvouz. The worst the unlocked access should do is miss
a sleep which was in the process of happening. That would have happened
even with the lock with a small delta in timing.
In v2 the lock was providing the coherence() that we put herein v3.
However, v2 also had deadlock problems twixt sleep and postnote
that v3 fixes.