diff options
author | Christopher Faylor <me@cgf.cx> | 2001-09-07 21:32:07 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2001-09-07 21:32:07 +0000 |
commit | 1ff9f4b9373620aa923412d7aa90b8d04d940199 (patch) | |
tree | 878c4a44487d2fe17137a6d6088a327ada14247b /winsup/cygwin/fork.cc | |
parent | b2d319cb3eaf0c1a139ee1586fa43d5250d5a058 (diff) | |
download | cygnal-1ff9f4b9373620aa923412d7aa90b8d04d940199.tar.gz cygnal-1ff9f4b9373620aa923412d7aa90b8d04d940199.tar.bz2 cygnal-1ff9f4b9373620aa923412d7aa90b8d04d940199.zip |
* cygheap.h (init_cygheap): Move heap pointers here.
* include/sys/cygwin.h (perprocess): Remove heap pointers.
* dcrt0.cc (__cygwin_user_data): Reflect obsolete perprocess stuff.
(_dll_crt0): Don't initialize heap pointers.
(cygwin_dll_init): Ditto.
(release_upto): Use heap pointers from cygheap.
* heap.h: Ditto.
* fork.cc (fork_parent): Ditto. Don't set heap pointers in ch.
(fork_child): Remove obsolete sigproc_fixup_after_fork.
* shared.cc (memory_init): Reorganize so that cygheap initialization is called
prior to regular heap since regular heap uses cygheap now.
* sigproc.cc (proc_subproc): Eliminate zombies allocation.
(sigproc_init): Move zombies alloation here. Don't free up array on fork, just
reuse it.
(sigproc_fixup_after_fork): Eliminate.
* sigproc.h: Ditto.
* include/cygwin/version.h: Reflect change to perprocess structure.
Diffstat (limited to 'winsup/cygwin/fork.cc')
-rw-r--r-- | winsup/cygwin/fork.cc | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc index 696daaf05..b72b441dc 100644 --- a/winsup/cygwin/fork.cc +++ b/winsup/cygwin/fork.cc @@ -246,7 +246,7 @@ fork_child (HANDLE& hParent, dll *&first_dll, bool& load_dlls) sync_with_parent ("after longjmp.", TRUE); ProtectHandle (hParent); sigproc_printf ("hParent %p, child 1 first_dll %p, load_dlls %d\n", hParent, - first_dll, load_dlls); + first_dll, load_dlls); #ifdef DEBUGGING char c; @@ -279,7 +279,6 @@ fork_child (HANDLE& hParent, dll *&first_dll, bool& load_dlls) debug_fixup_after_fork (); pinfo_fixup_after_fork (); cygheap->fdtab.fixup_after_fork (hParent); - sigproc_fixup_after_fork (); signal_fixup_after_fork (); MALLOC_CHECK; @@ -430,9 +429,6 @@ fork_parent (HANDLE& hParent, dll *&first_dll, init_child_info (PROC_FORK1, &ch, 1, subproc_ready); ch.forker_finished = forker_finished; - ch.heaptop = user_data->heaptop; - ch.heapbase = user_data->heapbase; - ch.heapptr = user_data->heapptr; stack_base (ch); @@ -489,7 +485,7 @@ fork_parent (HANDLE& hParent, dll *&first_dll, ForceCloseHandle(forker_finished); /* Restore impersonation */ if (cygheap->user.impersonated - && cygheap->user.token != INVALID_HANDLE_VALUE) + && cygheap->user.token != INVALID_HANDLE_VALUE) ImpersonateLoggedOnUser (cygheap->user.token); return -1; } @@ -556,7 +552,7 @@ fork_parent (HANDLE& hParent, dll *&first_dll, rc = fork_copy (pi, "user/cygwin data", user_data->data_start, user_data->data_end, user_data->bss_start, user_data->bss_end, - ch.heapbase, ch.heapptr, + cygheap->heapbase, cygheap->heapptr, stack_here, ch.stackbottom, dll_data_start, dll_data_end, dll_bss_start, dll_bss_end, NULL); |