On Sun, Apr 13, 2008 at 03:55:45PM +0200, Bart Van Assche wrote:
I think you need to re-read more carefully.
The users of the semaphore were doing nothing wrong. They were not
using the object after it was destroyed.
The i386 implementation of the semaphore was calling wake_up() after
setting the counter to allow cpu #0 to proceed. That was faster for the
common case, but had this problem. completions were careful not to do
that, and the semaphore implementation I wrote doesn't do that either.
Intel are signing my paycheques ... these opinions are still mine
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."