Spurious Wakeup Article Index for
Spurious
Website Links For
Wakeup
 

Information About

Spurious Wakeup




According to Butenhof's Programming with POSIX Threads ISBN 0-201-63392-2:

:"This means that when you wait on a condition variable, the wait may (occasionally) return when no thread specifically broadcast or signalled that condition variable. Spurious wakeups may sound strange, but on some multiprocessor systems, making condition wakeup completely predictable might substantially slow all condition variable operations. The Race Conditions that cause spurious wakeups should be considered rare."

However, in later personal correspondence, Butenhof admitted:

:"Though there were indeed some members of the working group who argued that it was theoretically possible to imagine that there might be such an implementation, that wasn't really the reason. (And they were never able to prove it.) POSIX threads were the result of a lot of tension between pragmatic hard realtime programmers and largely academic researchers. Spurious wakeups are the mechanism of an academic Computer Scientist clique to make sure that everyone had to write clean code that checked and verified Predicates !

:"But the (perhaps) largely spurious (or at least arcanely philosophical) ' Efficiency ' argument went over better with the Realtime People , and the real reason was usually relegated to second place in the rationale.

:"I've thought many times about how you might construct a correct and practical implementation that would really have spurious wakeups. I've never managed to construct an example. Doesn't mean there isn't one, though, and it makes a good story."


EXTERNAL LINKS