* 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.
This commit is contained in:
Christopher Faylor
2001-09-15 00:47:44 +00:00
parent bf0338856a
commit 9661a0c8b7
7 changed files with 46 additions and 19 deletions

View File

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