Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2001-09-08 01:32:07 +0400
committerChristopher Faylor <me@cgf.cx>2001-09-08 01:32:07 +0400
commit1ff9f4b9373620aa923412d7aa90b8d04d940199 (patch)
tree878c4a44487d2fe17137a6d6088a327ada14247b /winsup/cygwin/fork.cc
parentb2d319cb3eaf0c1a139ee1586fa43d5250d5a058 (diff)
* 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.cc10
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);