* cygheap.cc (cygheap_fixup_in_child): Don't page round cygheap copied from

parent.
* dcrt0.cc (do_exit): Don't cleanup pinfo on exit.  That happens automatically
now.
* exceptions.cc (signal_exit): Ditto.
* fork.cc (fork_parent): Use stack_here value passed in from fork().
(fork): Figure out top of stack here and pass it to fork_parent.
* pinfo.cc (_pinfo::record_death): Eliminate.
* pinfo.h (_pinfo): Ditto.
* sigproc.cc (proc_exists): Simplify.
(proc_terminate): Ditto.
(remove_zombie): Don't cleanup pinfo stuff.
(wait_sig): Send subproc_ready signal whether execed or spawned.
* spawn.cc (spawn_guts): Always create subproc_ready event.  Use it for both
exec and spawn.
(_spawnve): Send proper mode to spawn_guts when mode != _P_OVERLAY.
This commit is contained in:
Christopher Faylor
2000-10-14 05:52:38 +00:00
parent cbe4c8e234
commit aece55b982
9 changed files with 154 additions and 244 deletions

View File

@@ -973,7 +973,6 @@ enum
extern "C" void __stdcall
do_exit (int status)
{
BOOL cleanup_pinfo;
UINT n = (UINT) status;
static int NO_COPY exit_state = 0;
@@ -1013,10 +1012,7 @@ do_exit (int status)
}
if (n & EXIT_REPARENTING)
{
n &= ~EXIT_REPARENTING;
cleanup_pinfo = FALSE;
}
n &= ~EXIT_REPARENTING;
else
{
myself->stopsig = 0;
@@ -1045,7 +1041,6 @@ do_exit (int status)
}
tty_terminate ();
cleanup_pinfo = TRUE;
}
window_terminate ();
@@ -1060,11 +1055,6 @@ do_exit (int status)
ForceCloseHandle1 (hExeced, childhProc);
}
if (cleanup_pinfo)
myself->record_death ();
else
sigproc_printf ("not cleanup_pinfo");
shared_terminate ();
sigproc_printf ("calling ExitProcess %d", n);
@@ -1106,7 +1096,6 @@ __api_fatal (const char *fmt, ...)
/* We are going down without mercy. Make sure we reset
our process_state. */
sigproc_terminate ();
myself->record_death ();
#ifdef DEBUGGING
(void) try_to_debug ();
#endif