diff options
Diffstat (limited to 'winsup/cygwin/exceptions.cc')
-rw-r--r-- | winsup/cygwin/exceptions.cc | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index a56b35e..3a3bdb9 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -1119,14 +1119,22 @@ events_terminate (void) } extern "C" { -static int __stdcall call_signal_handler_now (); +static int __stdcall +call_signal_handler_now () +{ + int sa_flags = sigsave.sa_flags; + sigproc_printf ("sa_flags %p", sa_flags); + *sigsave.retaddr_on_stack = sigsave.retaddr; + sigdelayed0 (); + return sa_flags & SA_RESTART; +} }; int sigframe::call_signal_handler () { unregister (); - call_signal_handler_now (); + return call_signal_handler_now (); } #define pid_offset (unsigned)(((_pinfo *)NULL)->pid) @@ -1138,16 +1146,6 @@ reset_signal_arrived () sigproc_printf ("reset signal_arrived"); } -static int __stdcall -call_signal_handler_now () -{ - int sa_flags = sigsave.sa_flags; - sigproc_printf ("sa_flags %p", sa_flags); - *sigsave.retaddr_on_stack = sigsave.retaddr; - sigdelayed0 (); - return sa_flags & SA_RESTART; -} - void unused_sig_wrapper () { /* Signal cleanup stuff. Cleans up stack (too bad that we didn't |