diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 362d41c93..e70e7aa40 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +2012-08-07 Christopher Faylor + + * signal.cc (sigwaitinfo): Change cw_sig to the correct cw_sig_eintr. + 2012-08-03 Christopher Faylor * exceptions.cc (sigdelayed): Simplify declaration. diff --git a/winsup/cygwin/signal.cc b/winsup/cygwin/signal.cc index b34defb99..f3a3a3a07 100644 --- a/winsup/cygwin/signal.cc +++ b/winsup/cygwin/signal.cc @@ -580,7 +580,7 @@ sigwaitinfo (const sigset_t *set, siginfo_t *info) sig_dispatch_pending (true); int res; - switch (cancelable_wait (NULL, cw_infinite, cw_sig | cw_cancel | cw_cancel_self)) + switch (cancelable_wait (NULL, cw_infinite, cw_sig_eintr | cw_cancel | cw_cancel_self)) { case WAIT_SIGNALED: if (!sigismember (set, _my_tls.infodata.si_signo)) @@ -593,7 +593,6 @@ sigwaitinfo (const sigset_t *set, siginfo_t *info) if (info) *info = _my_tls.infodata; res = _my_tls.infodata.si_signo; - /* FIXME: Is this right? */ InterlockedExchange ((LONG *) &_my_tls.sig, (LONG) 0); } break;