On 9=D4=C229=C8=D5, =C9=CF=CE=E72=CA=B158=B7=D6, "Chris M. Thomasson"
<n...=
@[EMAIL PROTECTED]
> wrote:
> <chima1...@[EMAIL PROTECTED]
> wrote in message
>
> news:d782d680-0082-4d0a-8d9f-47306818ebb2@[EMAIL PROTECTED]
>
> > In a large system that is implemented using POSIX thread, a weird
> > thing happens:
> > a thread that pthread_cond_timewait() on a condition variable misses
> > signals, ie. some thread pthread_cond_broadcast() but nobody was waken
> > up.
> > This rare problem happens when the system is busy, such as CPU load is
> > high.
>
> > I know POSIX has spurious wakeup problem, ie. wake up without
> > signaling. But this problem, signaling but not wake up, is different.
> > Is that a well-known bug of POSIX?
>
> Are you making sure to check the predicate after a timeout condition is
h=
it?
Thanks, but this has nothing to do with predicater. The threads waits
on a cond "never" wake up, even some other threads broadcasts.
Also, this is rare, and only happens when CPU load is high. In 99.9%
time it works well. That's why I suspect it's a POSIX's bug.


|