[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#10641: [2.0.3+] start_signal_delivery_thread failure on x86_64-freeb

From: Andy Wingo
Subject: bug#10641: [2.0.3+] start_signal_delivery_thread failure on x86_64-freebsd8.2
Date: Wed, 13 Mar 2013 11:02:41 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux)


On Sun 29 Jan 2012 19:00, address@hidden (Ludovic Courtès) writes:

> Adding printfs shows that the thread calling scm_spawn_thread leaves
> cond_wait before the signal thread has signaled the condition (in
> really_spawn).


  When using condition variables there is always a Boolean predicate
  involving shared variables associated with each condition wait that is
  true if the thread should proceed. Spurious wakeups from the
  pthread_cond_timedwait() or pthread_cond_wait() functions may
  occur. Since the return from pthread_cond_timedwait() or
  pthread_cond_wait() does not imply anything about the value of this
  predicate, the predicate should be re-evaluated upon such return.

It seems this code is not robust in the face of spurious wakeups.  I
pushed a patch that waits for data.thread to become non-false.  That
should fix this issue.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]