diff options
Diffstat (limited to 'winsup/cygwin/exceptions.cc')
-rw-r--r-- | winsup/cygwin/exceptions.cc | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index 8374032b0..7efba7f05 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -864,10 +864,10 @@ setup_handler (int sig, void *handler, struct sigaction& siga) } else { - res = SetEvent (signal_arrived); // For an EINTR case - sigproc_printf ("armed signal_arrived %p, res %d", signal_arrived, res); /* Clear any waiting threads prior to dispatching to handler function */ proc_subproc (PROC_CLEARWAIT, 1); + res = SetEvent (signal_arrived); // For an EINTR case + sigproc_printf ("armed signal_arrived %p, res %d", signal_arrived, res); } if (th) @@ -1127,6 +1127,13 @@ reset_signal_arrived () sigproc_printf ("reset signal_arrived"); } +int +sigframe::call_signal_handler () +{ + unregister (); + ::call_signal_handler (); +} + int __stdcall call_signal_handler () { |