* cygheap.cc (cygheap_fixup_in_child): Attempt Win95 workaround.
* dtable.cc (dtable::dup_worker): Add debugging output. (dtable::vfork_child_dup): Correctly set close_on_exec. * fhandler.cc (fhandler_base::fork_fixup): Don't mess with handle if there is no need to get it from the parent. * fhandler_tty.cc (fhandler_tty_common::close): Add debugging output.
This commit is contained in:
@ -74,7 +74,7 @@ cygheap_setup_for_child (child_info *ci)
|
||||
newcygheap = MapViewOfFileEx (ci->cygheap_h, FILE_MAP_READ | FILE_MAP_WRITE,
|
||||
0, 0, 0, NULL);
|
||||
if (!VirtualAlloc (newcygheap, n, MEM_COMMIT, PAGE_READWRITE))
|
||||
api_fatal ("couldn't allocate new heap for child, %E");
|
||||
api_fatal ("couldn't allocate new cygwin heap for child, %E");
|
||||
memcpy (newcygheap, cygheap, n);
|
||||
UnmapViewOfFile (newcygheap);
|
||||
ci->cygheap = cygheap;
|
||||
@ -96,9 +96,11 @@ cygheap_fixup_in_child (child_info *ci, bool execed)
|
||||
DUPLICATE_SAME_ACCESS | DUPLICATE_CLOSE_SOURCE))
|
||||
cygheap_h = ci->cygheap_h;
|
||||
#endif
|
||||
VirtualFree (cygheap, CYGHEAPSIZE, MEM_DECOMMIT);
|
||||
VirtualFree (cygheap, 0, MEM_RELEASE);
|
||||
if (MapViewOfFileEx (ci->cygheap_h, FILE_MAP_READ | FILE_MAP_WRITE,
|
||||
0, 0, 0, cygheap) != cygheap)
|
||||
api_fatal ("Couldn't allocate space for child's heap from %p, to %p, %E",
|
||||
0, 0, CYGHEAPSIZE, cygheap) != cygheap)
|
||||
api_fatal ("Couldn't allocate space for child's cygwin heap from %p, to %p, %E",
|
||||
cygheap, cygheap_max);
|
||||
|
||||
ForceCloseHandle1 (ci->cygheap_h, passed_cygheap_h);
|
||||
|
Reference in New Issue
Block a user