diff options
author | Christopher Faylor <me@cgf.cx> | 2001-09-15 00:47:44 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2001-09-15 00:47:44 +0000 |
commit | 9661a0c8b7f59960d6d180ffa2872710f5253913 (patch) | |
tree | 08fad6a660efa6a0b678f417fcb826d02917aa76 /winsup/cygwin/sigproc.cc | |
parent | bf0338856a38f856195d3d517fa5067357ed2f9d (diff) | |
download | cygnal-9661a0c8b7f59960d6d180ffa2872710f5253913.tar.gz cygnal-9661a0c8b7f59960d6d180ffa2872710f5253913.tar.bz2 cygnal-9661a0c8b7f59960d6d180ffa2872710f5253913.zip |
* dcrt0.cc (dll_crt0_1): Create vfork main storage here so that it can be
queried in waitsig later.
* sigproc.cc (wait_sig): Don't deliver a signal if in a vfork.
* fork.cc (vfork): Deliver all signals on parent return from vfork.
Diffstat (limited to 'winsup/cygwin/sigproc.cc')
-rw-r--r-- | winsup/cygwin/sigproc.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index d3323ab78..607fa81ab 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -26,6 +26,7 @@ details. */ #include "dtable.h" #include "cygheap.h" #include "child_info.h" +#define NEED_VFORK #include "perthread.h" #include <assert.h> #include "shared_info.h" @@ -1161,6 +1162,7 @@ wait_sig (VOID *) if (sig > 0 && sig != SIGKILL && sig != SIGSTOP && (sigismember (&myself->getsigmask (), sig) || + main_vfork->pid || (sig != SIGCONT && ISSTATE (myself, PID_STOPPED)))) { sigproc_printf ("signal %d blocked", sig); |