diff options
author | Christopher Faylor <me@cgf.cx> | 2001-08-04 21:10:52 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2001-08-04 21:10:52 +0000 |
commit | e5ba4c060e410f92abe570933fe2bda239f34bd9 (patch) | |
tree | f00aba6a99486b9642573415d571c73ab3a0b80b /winsup/cygwin/fork.cc | |
parent | 17195d08bc7b8e4b9b4bbc21be92497c64f7045c (diff) | |
download | cygnal-e5ba4c060e410f92abe570933fe2bda239f34bd9.tar.gz cygnal-e5ba4c060e410f92abe570933fe2bda239f34bd9.tar.bz2 cygnal-e5ba4c060e410f92abe570933fe2bda239f34bd9.zip |
Throughout, change check for running under Windows NT to 'iswinnt'.
* dcrt0.cc (set_os_type): Set 'iswinnt' appropriately.
* cygheap.cc (init_cheap): Revert to using VirtualAlloc for allocating cygheap.
(cygheap_setup_for_child_cleanup): New function. Standard function to call
after calling CreateProcess to cleanup cygheap info passed to child.
(cygheap_fixup_in_child): Copy cygheap from shared memory into allocated space
under Windows 9x or if can't relocate shared space under NT.
* cygheap.h: Declare new function.
* spawn.cc (spawn_guts): Use cygheap_fixup_in_child.
* fork.cc (fork_parent): Ditto.
* winsup.h: Declare iswinnt.
Diffstat (limited to 'winsup/cygwin/fork.cc')
-rw-r--r-- | winsup/cygwin/fork.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc index 91f27eae1..238106cc6 100644 --- a/winsup/cygwin/fork.cc +++ b/winsup/cygwin/fork.cc @@ -116,7 +116,7 @@ fork_copy (PROCESS_INFORMATION &pi, const char *what, ...) debug_printf ("done"); return 1; -err: + err: TerminateProcess (pi.hProcess, 1); set_errno (EAGAIN); return 0; @@ -458,7 +458,7 @@ fork_parent (HANDLE& hParent, dll *&first_dll, npid = 0; } } -out: + out: #endif char sa_buf[1024]; @@ -477,7 +477,7 @@ out: &pi); CloseHandle (hParent); - ForceCloseHandle1 (ch.cygheap_h, passed_cygheap_h); + cygheap_setup_for_child_cleanup (&ch); if (!rc) { @@ -607,7 +607,7 @@ out: return forked->pid; /* Common cleanup code for failure cases */ -cleanup: + cleanup: /* Remember to de-allocate the fd table. */ if (pi.hProcess) ForceCloseHandle1 (pi.hProcess, childhProc); |