> if a process p sleeps on r for condition f, and there are two wakeup(r), only
> the first wakeup does anything because by the time of the second,
> r doesn't refer to p any more. were you wanting r to retain memory of p so
> the second wakeup would ... presumably still not do anything? (because
> p wouldn't be in the right state.) if so, i don't see what you've gained.
> i must be missing something.

i agree with you.  i'm the one who is missing something.
the case i thought i was seeing — double wakeup leading
to a panic — can't be happening.  there's something else
going on.

thanks for the thoughtful responses to a dumb question.

btw, isn't the lockstats.locks++ in taslock:/^lock
broken since >1 loads can happen simultaneously
leading to undercounting?

- erik

Reply via email to