Re: pthread_cond_wait spurious wakeup
Dmitry Morozovsky <[email protected]> Sat, 25 Jul 2026 14:06:31 +0300
| Newsgroups | gmane.os.freebsd.devel.hackers |
|---|---|
| Message-ID | <[email protected]> |
On 25.07.2026 2:41, Konstantin Belousov wrote: > On Sat, Jul 25, 2026 at 02:02:35AM +0300, Slawa Olhovchenkov wrote: >> Is pthread_cond_wait susceptible to spurious wakeup in FreeBSD? The >> pthread_cond_wait man page doesn't say anything about waiting thread >> can unblocking in cases like EINTR. But in >> lib/libthr/thread/thr_cond.c:232-249, >> I seem to see a successful return from pthread_cond_wait on EINTR >> case. So, we don't have a spurious wakeup issue, or does the man page >> need to be corrected and an additional predicate should be used in >> conjunction with pthread_cond_wait? > Spurious wakeups are allowed and can happen. They are not neccessarly > limited to signals delivery. > > 'The additional predicate' is how the user code must be structured anyway, > because pthread_cond_wait() drops the mutex that is supposed to protect > the data holding the condition. So, is the wording "The waiting thread unblocks only after..." from the manpage wrong (incomplete)? And, if yes, how do you think should it be rephrased/corrected? Thanks! -- Sincerely, D.Marck [MCK-RIPE] [ FreeBSD committer: [email protected] ] --------------------------------------------------------------------------- *** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- [email protected] *** ---------------------------------------------------------------------------