diff options
Diffstat (limited to 'winsup/cygwin/exceptions.cc')
-rw-r--r-- | winsup/cygwin/exceptions.cc | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index 7efba7f05..aa3fd1180 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -1127,15 +1127,8 @@ reset_signal_arrived () sigproc_printf ("reset signal_arrived"); } -int -sigframe::call_signal_handler () -{ - unregister (); - ::call_signal_handler (); -} - -int __stdcall -call_signal_handler () +static int __stdcall +call_signal_handler_now () { int sa_flags = sigsave.sa_flags; sigproc_printf ("sa_flags %p", sa_flags); @@ -1144,6 +1137,13 @@ call_signal_handler () return sa_flags & SA_RESTART; } +int +sigframe::call_signal_handler () +{ + unregister (); + call_signal_handler_now (); +} + void unused_sig_wrapper () { /* Signal cleanup stuff. Cleans up stack (too bad that we didn't @@ -1160,7 +1160,7 @@ _sigreturn:\n\ \n\ cmpl $0,%4 # Did a signal come in?\n\ jz 1f # No, if zero\n\ - call _call_signal_handler@0 # yes handle the signal\n\ + call _call_signal_handler_now@0 # yes handle the signal\n\ \n\ # FIXME: There is a race here. The signal handler could set up\n\ # the sigsave structure between _call_signal_handler and the\n\ |