diff options
author | Christopher Faylor <me@cgf.cx> | 2001-07-17 03:41:52 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2001-07-17 03:41:52 +0000 |
commit | 5457dfcb8174f0ff25a0522050c1d79e710a68df (patch) | |
tree | 65df1229b3c4d86e54d861f70fc1f2458edc4736 /winsup/cygwin/fork.cc | |
parent | 30640285c33dedac2099ebd0492b86b3bbabaaad (diff) | |
download | newlib-5457dfcb8174f0ff25a0522050c1d79e710a68df.zip newlib-5457dfcb8174f0ff25a0522050c1d79e710a68df.tar.gz newlib-5457dfcb8174f0ff25a0522050c1d79e710a68df.tar.bz2 |
* child_info.h: Bump magic number.
(class child_info): Add an element.
* cygheap.cc (init_cheap): Allocate cygwin heap in shared memory area.
(cygheap_fixup_in_child): Map cygwin heap, passed from parent via shared memory
into correct address.
(cygheap_setup_for_child): New function.
* cygheap.h: Declare new functions.
* dcrt0.cc (dll_crt0_1): Accomodate new cygheap_fixup_in_child arguments.
Avoid protecting subproc_ready unless it is spawn/nowait.
* fork.cc (fork_parent): Use new cygheap_setup_for_child function to setup
cygwin heap info. Close passed cygheap shared memory handle.
* spawn.cc (spawn_guts): Ditto. Also, reorganize to avoid synchronization
between parent and child in non-P_OVERLAY case.
* sigproc.cc (wait_sig): Only signal subproc_ready when execing.
Diffstat (limited to 'winsup/cygwin/fork.cc')
-rw-r--r-- | winsup/cygwin/fork.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc index ac9f855..5c7bad3 100644 --- a/winsup/cygwin/fork.cc +++ b/winsup/cygwin/fork.cc @@ -442,8 +442,7 @@ fork_parent (HANDLE& hParent, dll *&first_dll, RevertToSelf (); ch.parent = hParent; - ch.cygheap = cygheap; - ch.cygheap_max = cygheap_max; + cygheap_setup_for_child (&ch); #ifdef DEBUGGING if (npid_max) { @@ -477,6 +476,7 @@ out: &pi); CloseHandle (hParent); + ForceCloseHandle1 (ch.cygheap_h, passed_cygheap_h); if (!rc) { |