* cygerrno.h (set_errno): Set global errno whenever setting thread specific
version. * debug.cc (__set_errno): Ditto. * exceptions.cc (handle_sigsuspend): Remove spurious sig_dispatch_pending call. (set_signal_mask): When there seem to be pending signals to dispatch, tell signal_dispatch_pending/sig_send not to specifically call any handlers. * sigproc.h (sig_dispatch_pending): Change declaration to void. * sigproc.cc (sig_dispatch_pending): Change definition to void. Take an argument to determine whether to tell sig_send to wait for handler to be called. * sigproc.cc (sig_send): Don't call signal handler when sig == __SIGFLUSHFAST. (wait_sig): Honor __SIGFLUSHFAST. Guard against sigpacket::process nuking si_signo. * sigproc.h (__SIGFLUSHFAST): Define new special signal. (sig_dispatch_pending): Change declaration to void. Take optional boolean argument. * fork.cc (vfork): Add debugging output.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
/* sigproc.h
|
||||
|
||||
Copyright 1997, 1998, 2000, 2001, 2002, 2003 Red Hat, Inc.
|
||||
Copyright 1997, 1998, 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
|
||||
|
||||
This file is part of Cygwin.
|
||||
|
||||
@@ -23,7 +23,8 @@ enum
|
||||
__SIGSTRACE = -(NSIG + 2),
|
||||
__SIGCOMMUNE = -(NSIG + 3),
|
||||
__SIGPENDING = -(NSIG + 4),
|
||||
__SIGDELETE = -(NSIG + 5)
|
||||
__SIGDELETE = -(NSIG + 5),
|
||||
__SIGFLUSHFAST = -(NSIG + 6)
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -67,7 +68,7 @@ extern HANDLE signal_arrived;
|
||||
extern HANDLE sigCONT;
|
||||
|
||||
bool __stdcall my_parent_is_alive ();
|
||||
int __stdcall sig_dispatch_pending ();
|
||||
void __stdcall sig_dispatch_pending (bool fast = false);
|
||||
#ifdef _PINFO_H
|
||||
extern "C" void __stdcall set_signal_mask (sigset_t newmask, sigset_t = myself->getsigmask ());
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user