Subj : Real cause of spurius wakeups To : comp.programming.threads From : Vladimir Prus Date : Thu Mar 31 2005 06:43 pm Hello, can somebody explain the real reason why spurious wakeups are possible. That is, why call to pthread_cond_wait can return without pthread_cond_broadcast/pthread_cond_signal. I'm specifically talking about spurious wakeup caused by pthread implementation, not the one caused by loose predicate checking on the notifying side, or "stolen wakeup". I looked in archives for this group, and in the FAQ, but found only vague statements that on some SMP systems avoiding spurious wakeup is too hard. I understand that pthread_cond_wait need to be wrapped in a loop even if spurious wakeups did not exist. I'm asking just because the wakeups are mentioned everywhere, but I never seen a complete explanations. Thanks in advance, Volodya .