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;