* environ.cc: Eliminate oldstack CYGWIN option.
* exceptions.cc (sfta): Eliminate obsolete function. (sgmb): Eliminate obsolete function. (class stack_info): Remove MS method for walking the stack. (stack_info::init): Just initialize required fields. (stack_info::brute_force): Rename to stack_info::walk. (handle_exceptions): Pass derived frame pointer to sig_send. (interrupt_setup): Clear saved frame pointer here. (interrupt_on_return): thestack is no longer a pointer. (call_handler): Accept a flag to indicate when a signal was sent from other than the main thread. Use saved frame pointer for determining where to place signal handler call. (sig_handle): Accept "nonmain" argument. Pass it to call_handler. * fhandler_tty.cc (fhandler_tty_common::__acquire_output_mutex): Change debugging output slightly. * (fhandler_tty_common::__release_output_mutex): Ditto. (fhandler_tty_slave::read): Fix a comment, remove a goto. * sigproc.cc (sig_send): Accept an optional frame pointer argument for use when suspending the main process. sigcomplete_main is an autoreset event now. Save frame pointer for non-main operation. (wait_sig): Make sigcomplete_main an autoreset event. Eliminate NOSIGQUEUE. Pass rc to sig_handle to signify if this was a nonmain process. * sigproc.h: Reflect change to sig_send argument. * syscalls.cc (swab): Eliminate swab function since it is now available in newlib. * winsup.h (signal_dispatch): Change CONTEXT cx to DWORD ebp.
This commit is contained in:
@ -37,7 +37,7 @@ extern HANDLE signal_arrived;
|
||||
BOOL __stdcall my_parent_is_alive ();
|
||||
extern "C" int __stdcall sig_dispatch_pending (int force = FALSE) __asm__ ("sig_dispatch_pending");
|
||||
extern "C" void __stdcall set_process_mask (sigset_t newmask);
|
||||
int __stdcall sig_handle (int);
|
||||
int __stdcall sig_handle (int, int);
|
||||
void __stdcall sig_clear (int);
|
||||
void __stdcall sig_set_pending (int);
|
||||
int __stdcall handle_sigsuspend (sigset_t);
|
||||
@ -48,7 +48,7 @@ void __stdcall subproc_init ();
|
||||
void __stdcall sigproc_terminate ();
|
||||
BOOL __stdcall proc_exists (pinfo *);
|
||||
int __stdcall proc_subproc (DWORD, DWORD);
|
||||
int __stdcall sig_send (pinfo *, int);
|
||||
int __stdcall sig_send (pinfo *, int, DWORD ebp = 0);
|
||||
|
||||
extern char myself_nowait_dummy[];
|
||||
extern char myself_nowait_nonmain_dummy[];
|
||||
|
Reference in New Issue
Block a user