* 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:
Christopher Faylor
2001-04-02 00:18:29 +00:00
parent 0ef785e4ee
commit 1ba3935dfb
4 changed files with 20 additions and 14 deletions

View File

@ -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