summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/sigproc.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2001-09-15 00:47:44 +0000
committerChristopher Faylor <me@cgf.cx>2001-09-15 00:47:44 +0000
commit9661a0c8b7f59960d6d180ffa2872710f5253913 (patch)
tree08fad6a660efa6a0b678f417fcb826d02917aa76 /winsup/cygwin/sigproc.cc
parentbf0338856a38f856195d3d517fa5067357ed2f9d (diff)
downloadcygnal-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.cc2
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);