diff options
author | Christopher Faylor <me@cgf.cx> | 2000-04-08 08:13:12 +0400 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2000-04-08 08:13:12 +0400 |
commit | 0cda2f4609291ee1394935aca76eb740a67a5473 (patch) | |
tree | c125c12b3f48841ecf7af6298c5df5aa45dfa20c /winsup/cygwin/fork.cc | |
parent | 65c0e6e68c617463b1d52463f624a6bcee6e383f (diff) |
* 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.
Diffstat (limited to 'winsup/cygwin/fork.cc')
-rw-r--r-- | winsup/cygwin/fork.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc index 44fc49dc2..baa5a9599 100644 --- a/winsup/cygwin/fork.cc +++ b/winsup/cygwin/fork.cc @@ -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; |