From 23338be7f57c46291435742bc8a58f8f4d5898fb Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Fri, 17 Aug 2012 15:56:05 +0000 Subject: * exceptions.cc (sig_handle_tty_stop): Clear tls sig field. (sigpacket::process): When continuing, set tls->sig before arming signal_arrived. --- winsup/cygwin/ChangeLog | 6 ++++++ winsup/cygwin/exceptions.cc | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) 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 + + * 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 * 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; -- cgit v1.2.3