On 6/16/2013 1:51 PM, Ken Brown wrote: >> ERRORS >> EINTR The call was interrupted by a signal handler; see >> signal(7). I've revised the test case (attached) so that it checks for EINTR. It now runs as expected on Cygwin: Testing pthread_kill() Thread 0 starting (0x800102a8) Thread 1 starting (0x80010348) Thread 2 starting (0x800103e8) Sending SIGUSR1 to thread 2 (0x800103e8) Thread 2 executes signal handler (0x800103e8) Thread 2 woke up just fine Sending SIGUSR1 to thread 1 (0x80010348) Thread 1 executes signal handler (0x80010348) Thread 1 woke up just fine Sending SIGUSR1 to thread 0 (0x800102a8) Thread 0 executes signal handler (0x800102a8) Thread 0 woke up just fine So there's no reason to think that a pthread_kill bug is causing the problem. Back to the drawing board. Ken