mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-19 04:49:25 +08:00
* signal.cc (_raise): New function.
* exceptions.cc (unused_sig_wrapper): Remove _raise. * sigproc.h (class sigframe): Default frames to skip to zero or suffer from exuberant optimization. * fhandler_tty.cc (fhandler_tty::write): Set appropriate errno when WriteFile to pipe fails.
This commit is contained in:
parent
1b38471e5e
commit
d824bcf985
@ -1,3 +1,12 @@
|
||||
Mon Aug 28 22:03:21 2000 Christopher Faylor <cgf@cygnus.com>
|
||||
|
||||
* signal.cc (_raise): New function.
|
||||
* exceptions.cc (unused_sig_wrapper): Remove _raise.
|
||||
* sigproc.h (class sigframe): Default frames to skip to zero or suffer
|
||||
from exuberant optimization.
|
||||
* fhandler_tty.cc (fhandler_tty::write): Set appropriate errno when
|
||||
WriteFile to pipe fails.
|
||||
|
||||
Fri Aug 25 23:44:48 2000 Christopher Faylor <cgf@cygnus.com>
|
||||
|
||||
* pinfo.h (pinfo): Un-inline release.
|
||||
|
@ -1074,18 +1074,6 @@ void unused_sig_wrapper ()
|
||||
and returns to orignal caller. */
|
||||
__asm__ volatile ("
|
||||
.text
|
||||
.globl __raise
|
||||
__raise:
|
||||
pushl %%ebp
|
||||
movl %%esp,%%ebp
|
||||
movl 8(%%ebp),%%eax
|
||||
pushl %%eax
|
||||
movl $_myself,%%eax
|
||||
pushl %6(%%eax)
|
||||
call __kill
|
||||
mov %%ebp,%%esp
|
||||
popl %%ebp
|
||||
ret
|
||||
|
||||
_sigreturn:
|
||||
addl $4,%%esp
|
||||
|
@ -568,9 +568,17 @@ fhandler_tty_slave::write (const void *ptr, size_t len)
|
||||
|
||||
if (WriteFile (get_output_handle (), buf, n, &n, NULL) == FALSE)
|
||||
{
|
||||
DWORD err = GetLastError ();
|
||||
termios_printf ("WriteFile failed, %E");
|
||||
towrite = (DWORD) -1;
|
||||
switch (err)
|
||||
{
|
||||
case ERROR_NO_DATA:
|
||||
err = ERROR_IO_DEVICE;
|
||||
default:
|
||||
__seterrno ();
|
||||
}
|
||||
_raise (SIGHUP); /* FIXME: Should this be SIGTTOU? */
|
||||
towrite = (DWORD) -1;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -144,6 +144,12 @@ kill_worker (pid_t pid, int sig)
|
||||
return res;
|
||||
}
|
||||
|
||||
int
|
||||
_raise (int sig)
|
||||
{
|
||||
return _kill (myself->pid, sig);
|
||||
}
|
||||
|
||||
/* This is called _kill because the real kill is in newlib. */
|
||||
int
|
||||
_kill (pid_t pid, int sig)
|
||||
|
@ -60,7 +60,7 @@ public:
|
||||
}
|
||||
|
||||
sigframe () {st = NULL;}
|
||||
sigframe (sigthread &t, int up = 1)
|
||||
sigframe (sigthread &t, int up = 0)
|
||||
{
|
||||
if (!t.frame && t.id == GetCurrentThreadId ())
|
||||
set (t, up);
|
||||
|
Loading…
x
Reference in New Issue
Block a user