* cygheap.h (init_cygheap): New struct holding values that live in the Cygwin
heap. * child_info.h (child_info): Change pointer type of cygheap to init_cygheap. * cygheap.cc (init_cheap): Point cygheap_max after contents of cygheap. Move some stuff into cygheap.h. * dir.cc (opendir): Change to use root and rootlen in cygheap rather than in myself. (mkdir): Change to use umask in cygheap rather than in myself. * path.cc: Ditto, throughout. * syscalls.cc (_open): Ditto. Change to use umask in cygheap rather than in myself. (chroot): Change to allocate root dir on the cygwin heap. (umask): Change to use umask in cygheap rather than in myself. (cygwin_bind): Ditto. * sigproc.cc (proc_subproc): Don't copy umask or root stuff as this happens automatically now. * pinfo.h (_pinfo): Migrate stuff out of here and into init_cheap. * dcrt0.cc (dll_crt0_1): Call cygheap_init later in startup for first cygwin process.
This commit is contained in:
@@ -654,7 +654,6 @@ dll_crt0_1 ()
|
||||
|
||||
threadname_init ();
|
||||
debug_init ();
|
||||
cygheap_init (); /* Initialize cygheap muto */
|
||||
|
||||
regthread ("main", GetCurrentThreadId ());
|
||||
mainthread.init ("mainthread"); // For use in determining if signals
|
||||
@@ -734,6 +733,9 @@ dll_crt0_1 ()
|
||||
/* Initialize events. */
|
||||
events_init ();
|
||||
|
||||
if (!child_proc_info)
|
||||
cygheap_init ();
|
||||
|
||||
cygcwd.init ();
|
||||
|
||||
cygbench ("pre-forkee");
|
||||
@@ -861,14 +863,6 @@ dll_crt0_1 ()
|
||||
extern "C" void __stdcall
|
||||
_dll_crt0 ()
|
||||
{
|
||||
char zeros[sizeof (fork_info->zero)] = {0};
|
||||
#ifdef DEBUGGING
|
||||
strace.microseconds ();
|
||||
#endif
|
||||
|
||||
/* Set the os_being_run global. */
|
||||
set_os_type ();
|
||||
|
||||
#ifdef DEBUGGING
|
||||
char buf[80];
|
||||
if (GetEnvironmentVariable ("CYGWIN_SLEEP", buf, sizeof (buf)))
|
||||
@@ -878,7 +872,16 @@ _dll_crt0 ()
|
||||
}
|
||||
#endif
|
||||
|
||||
char zeros[sizeof (fork_info->zero)] = {0};
|
||||
#ifdef DEBUGGING
|
||||
strace.microseconds ();
|
||||
#endif
|
||||
|
||||
/* Set the os_being_run global. */
|
||||
set_os_type ();
|
||||
|
||||
main_environ = user_data->envptr;
|
||||
*main_environ = NULL;
|
||||
user_data->heapbase = user_data->heapptr = user_data->heaptop = NULL;
|
||||
|
||||
set_console_handler ();
|
||||
|
Reference in New Issue
Block a user