* exceptions.cc (sigframe::call_signal_handler): Return value of
call_signal_handler_now. * sigproc.h (sigframe): Use constructor. * syscalls.cc (_read): Correct errno test prior to calling signal handler.
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user