* 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:
Christopher Faylor
2000-04-08 04:13:12 +00:00
parent 65c0e6e68c
commit 0cda2f4609
6 changed files with 64 additions and 38 deletions

View File

@@ -49,6 +49,7 @@ void __stdcall sigproc_terminate ();
BOOL __stdcall proc_exists (pinfo *);
int __stdcall proc_subproc (DWORD, DWORD);
int __stdcall sig_send (pinfo *, int, DWORD ebp = 0);
void __stdcall signal_fixup_after_fork ();
extern char myself_nowait_dummy[];
extern char myself_nowait_nonmain_dummy[];