* 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.
This commit is contained in:
		@@ -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)
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user