Hi Takashi, thanks for looking into this problem.
On Nov 18 00:48, Takashi Yano wrote: > @@ -640,6 +641,16 @@ sigwait_common (const sigset_t *set, siginfo_t *info, > PLARGE_INTEGER waittime) > } > break; > case WAIT_TIMEOUT: > + _my_tls.lock (); > + if (_my_tls.sigwait_mask == 0) > + { > + /* sigpacket::process() already started. */ > + waittime = cw_infinite; cw_infinite? Shouldn't this situation lead to cygwait returning immediately with WAIT_SIGNALLED? The theory would explain to me that the timeout doesn't matter in this case, but given that the actual, configured timeout already occured, wouldn't it be safer to set timeout to 0? Just in case? > + _my_tls.unlock (); > + goto do_wait; > + } > + _my_tls.sigwait_mask = 0; > + _my_tls.unlock (); > set_errno (EAGAIN); > break; > default: Thanks, Corinna