From 1ff9f4b9373620aa923412d7aa90b8d04d940199 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Fri, 7 Sep 2001 21:32:07 +0000 Subject: * 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. --- winsup/cygwin/shared.cc | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'winsup/cygwin/shared.cc') diff --git a/winsup/cygwin/shared.cc b/winsup/cygwin/shared.cc index 5622765fa..2fe5b85a9 100644 --- a/winsup/cygwin/shared.cc +++ b/winsup/cygwin/shared.cc @@ -151,7 +151,6 @@ memory_init () cygwin_shared_address); cygwin_shared->initialize (); - heap_init (); /* Allocate memory for the per-user mount table */ char user_name[UNLEN + 1]; @@ -159,12 +158,6 @@ memory_init () if (!GetUserName (user_name, &user_name_len)) strcpy (user_name, "unknown"); - mount_table = (mount_info *) open_shared (user_name, cygwin_mount_h, - sizeof (mount_info), 0); - debug_printf ("opening mount table for '%s' at %p", cygheap->user.name (), - mount_table_address); - ProtectHandle (cygwin_mount_h); - debug_printf ("mount table version %x at %p", mount_table->version, mount_table); /* Initialize the Cygwin heap, if necessary */ if (!cygheap) @@ -172,9 +165,18 @@ memory_init () cygheap_init (); cygheap->user.set_name (user_name); } + cygheap->shared_h = shared_h; ProtectHandle (cygheap->shared_h); + heap_init (); + mount_table = (mount_info *) open_shared (user_name, cygwin_mount_h, + sizeof (mount_info), 0); + debug_printf ("opening mount table for '%s' at %p", cygheap->user.name (), + mount_table_address); + ProtectHandle (cygwin_mount_h); + debug_printf ("mount table version %x at %p", mount_table->version, mount_table); + /* Initialize the Cygwin per-user mount table, if necessary */ if (!mount_table->version) { -- cgit v1.2.3