diff options
author | Christopher Faylor <me@cgf.cx> | 2001-09-15 04:47:44 +0400 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2001-09-15 04:47:44 +0400 |
commit | 9661a0c8b7f59960d6d180ffa2872710f5253913 (patch) | |
tree | 08fad6a660efa6a0b678f417fcb826d02917aa76 /winsup/cygwin/dcrt0.cc | |
parent | bf0338856a38f856195d3d517fa5067357ed2f9d (diff) |
* 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/dcrt0.cc')
-rw-r--r-- | winsup/cygwin/dcrt0.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc index a9648f213..5402510a7 100644 --- a/winsup/cygwin/dcrt0.cc +++ b/winsup/cygwin/dcrt0.cc @@ -534,6 +534,7 @@ alloc_stack (child_info_fork *ci) static NO_COPY int mypid = 0; int _declspec(dllexport) __argc; char _declspec(dllexport) **__argv; +vfork_save NO_COPY *main_vfork = NULL; void sigthread::init (const char *s) @@ -644,6 +645,7 @@ dll_crt0_1 () events_init (); cygheap->cwd.init (); + main_vfork = vfork_storage.create (); cygbench ("pre-forkee"); if (user_data->forkee) |