diff options
Diffstat (limited to 'winsup/cygwin/fork.cc')
-rw-r--r-- | winsup/cygwin/fork.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc index 1dbfebe..78ba970 100644 --- a/winsup/cygwin/fork.cc +++ b/winsup/cygwin/fork.cc @@ -196,6 +196,12 @@ frok::child (volatile char * volatile here) debug_printf ("child is running. pid %d, ppid %d, stack here %p", myself->pid, myself->ppid, __builtin_frame_address (0)); + /* NOTE: Logically this belongs in dll_list::load_after_fork, but by + doing it here, before the first sync_with_parent, we can exploit + the existing retry mechanism in hopes of getting a more favorable + address space layout next time. */ + dlls.reserve_space (); + sync_with_parent ("after longjmp", true); sigproc_printf ("hParent %p, load_dlls %d", hParent, load_dlls); |