Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/sigproc.cc')
-rw-r--r--winsup/cygwin/sigproc.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
index aeb51f264..862093c54 100644
--- a/winsup/cygwin/sigproc.cc
+++ b/winsup/cygwin/sigproc.cc
@@ -516,6 +516,12 @@ sig_dispatch_pending (int justwake)
{
if (!hwait_sig)
return 0;
+ DWORD tid = GetCurrentThreadId ();
+
+ sigframe thisframe (mainthread);
+
+ if (tid == sigtid && !justwake)
+ justwake = 1;
int was_pending = pending_signals;
#ifdef DEBUGGING
@@ -544,6 +550,9 @@ sig_dispatch_pending (int justwake)
system_printf ("%E releasing sigcatch_nosync(%p)", sigcatch_nosync);
}
+ if (was_pending && !justwake)
+ thisframe.call_signal_handler ();
+
return was_pending;
}