aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog4
-rw-r--r--winsup/cygwin/signal.cc3
2 files changed, 5 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 362d41c..e70e7aa 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,7 @@
+2012-08-07 Christopher Faylor <me.cygwin2012@cgf.cx>
+
+ * signal.cc (sigwaitinfo): Change cw_sig to the correct cw_sig_eintr.
+
2012-08-03 Christopher Faylor <me.cygwin2012@cgf.cx>
* exceptions.cc (sigdelayed): Simplify declaration.
diff --git a/winsup/cygwin/signal.cc b/winsup/cygwin/signal.cc
index b34defb..f3a3a3a 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;