* exceptions.cc (sigsave): Copy on fork so that we can restore correct behavior
in forked process. (interruptible): Flag as interruptible when running in main process module. (interrupt_setup): Save return address and address of return address. (signal_fixup_after_fork): New function. Uses above two values to restore proper behavior to forked process. (interrupt_on_return): Pass return address address to interupt_setup. (interrupt_now): Pass NULL for return address address to interrupt_setup. * fork.cc (fork): Call signal_fixup_after_fork. * shared.h: Lint cleanups. * winsup.h: Ditto.
This commit is contained in:
@@ -17,7 +17,7 @@ details. */
|
||||
#include "winsup.h"
|
||||
#include "dll_init.h"
|
||||
|
||||
DWORD chunksize = 0;
|
||||
DWORD NO_COPY chunksize = 0;
|
||||
/* Timeout to wait for child to start, parent to init child, etc. */
|
||||
/* FIXME: Once things stabilize, bump up to a few minutes. */
|
||||
#define FORK_WAIT_TIMEOUT (300 * 1000) /* 300 seconds */
|
||||
@@ -516,6 +516,7 @@ fork ()
|
||||
MALLOC_CHECK;
|
||||
|
||||
dtable.fixup_after_fork (hParent);
|
||||
signal_fixup_after_fork ();
|
||||
ForceCloseHandle (hParent);
|
||||
|
||||
MALLOC_CHECK;
|
||||
|
Reference in New Issue
Block a user