summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2012-08-17 15:56:05 +0000
committerChristopher Faylor <me@cgf.cx>2012-08-17 15:56:05 +0000
commit23338be7f57c46291435742bc8a58f8f4d5898fb (patch)
tree8b113f69b919312d06534cd61f80b5de85aa1cb6
parent74d1d0ee8047aafe4f24ef19f009145bc64ea1c5 (diff)
downloadcygnal-23338be7f57c46291435742bc8a58f8f4d5898fb.tar.gz
cygnal-23338be7f57c46291435742bc8a58f8f4d5898fb.tar.bz2
cygnal-23338be7f57c46291435742bc8a58f8f4d5898fb.zip
* exceptions.cc (sig_handle_tty_stop): Clear tls sig field.
(sigpacket::process): When continuing, set tls->sig before arming signal_arrived.
-rw-r--r--winsup/cygwin/ChangeLog6
-rw-r--r--winsup/cygwin/exceptions.cc6
2 files changed, 11 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 497a343c1..937ca36b9 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,9 @@
+2012-08-17 Christopher Faylor <me.cygwin2012@cgf.cx>
+
+ * exceptions.cc (sig_handle_tty_stop): Clear tls sig field.
+ (sigpacket::process): When continuing, set tls->sig before arming
+ signal_arrived.
+
2012-08-17 Thomas Wolff <towo@towo.net>
* fhandler_clipboard.cc (fhandler_dev_clipboard::read): Use
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index 35b119e9f..fe5010ee1 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -743,6 +743,7 @@ sig_handle_tty_stop (int sig)
switch (res)
{
case WAIT_SIGNALED:
+ _my_tls.sig = 0;
myself->stopsig = SIGCONT;
myself->alert_parent (SIGCONT);
break;
@@ -1242,7 +1243,10 @@ dosig:
done:
if (continue_now)
- SetEvent (tls->signal_arrived);
+ {
+ tls->sig = SIGCONT;
+ SetEvent (tls->signal_arrived);
+ }
sigproc_printf ("returning %d", rc);
return rc;