* exceptions.cc (handle_exceptions): Just "core dump" if SIGSEGV in signal
thread. * external.cc (fillout_pinfo): Fix compiler warning. * sigproc.h: Eliminate special asm naming for sig_dispatch_pending. * sigproc.cc (sig_send): Remove debugging statements.
This commit is contained in:
parent
cdfeaeb823
commit
f9f2ed0e2b
|
@ -1,3 +1,10 @@
|
|||
Fri Sep 15 22:30:40 2000 Christopher Faylor <cgf@cygnus.com>
|
||||
|
||||
* exceptions.cc (handle_exceptions): Just "core dump" if SIGSEGV in signal thread.
|
||||
* external.cc (fillout_pinfo): Fix compiler warning.
|
||||
* sigproc.h: Eliminate special asm naming for sig_dispatch_pending.
|
||||
* sigproc.cc (sig_send): Remove debugging statements.
|
||||
|
||||
Wed Sep 13 14:56:47 2000 Christopher Faylor <cgf@cygnus.com>
|
||||
|
||||
* spawn.cc (av): Hide 'calloced' field and limit cstrduping to class
|
||||
|
|
|
@ -34,6 +34,8 @@ extern void siglast ();
|
|||
extern DWORD __sigfirst, __siglast;
|
||||
};
|
||||
|
||||
extern DWORD sigtid;
|
||||
|
||||
static BOOL WINAPI ctrl_c_handler (DWORD);
|
||||
static void signal_exit (int) __attribute__ ((noreturn));
|
||||
static char windows_system_directory[1024];
|
||||
|
@ -491,6 +493,7 @@ handle_exceptions (EXCEPTION_RECORD *e, void *, CONTEXT *in, void *)
|
|||
}
|
||||
|
||||
if (!myself->progname[0]
|
||||
|| GetCurrentThreadId () == sigtid
|
||||
|| (void *) myself->getsig (sig).sa_handler == (void *) SIG_DFL
|
||||
|| (void *) myself->getsig (sig).sa_handler == (void *) SIG_IGN
|
||||
|| (void *) myself->getsig (sig).sa_handler == (void *) SIG_ERR)
|
||||
|
@ -859,8 +862,6 @@ ctrl_c_handler (DWORD type)
|
|||
extern "C" void __stdcall
|
||||
set_process_mask (sigset_t newmask)
|
||||
{
|
||||
extern DWORD sigtid;
|
||||
|
||||
mask_sync->acquire (INFINITE);
|
||||
sigset_t oldmask = myself->getsigmask ();
|
||||
newmask &= ~SIG_NONMASKABLE;
|
||||
|
|
|
@ -48,7 +48,7 @@ fillout_pinfo (pid_t pid, int winpid)
|
|||
|
||||
if (!p)
|
||||
{
|
||||
if (!winpid || (!nextpid && thispid != pid))
|
||||
if (!winpid || (!nextpid && thispid != (DWORD) pid))
|
||||
continue;
|
||||
ep.pid = thispid;
|
||||
ep.dwProcessId = cygwin_pid (thispid);
|
||||
|
|
|
@ -815,7 +815,6 @@ sig_send (_pinfo *p, int sig, DWORD ebp)
|
|||
|
||||
if (!ReleaseSemaphore (thiscatch, 1, NULL) && (int) GetLastError () > 0)
|
||||
{
|
||||
sigproc_printf ("ReleaseSemaphore failed, %E");
|
||||
/* Couldn't signal the semaphore. This probably means that the
|
||||
* process is exiting.
|
||||
*/
|
||||
|
@ -833,7 +832,6 @@ sigproc_printf ("ReleaseSemaphore failed, %E");
|
|||
}
|
||||
goto out;
|
||||
}
|
||||
sigproc_printf ("ReleaseSemaphore succeeded");
|
||||
|
||||
/* No need to wait for signal completion unless this was a signal to
|
||||
* this process.
|
||||
|
|
|
@ -84,7 +84,7 @@ extern HANDLE signal_arrived;
|
|||
extern HANDLE parent_alive;
|
||||
|
||||
BOOL __stdcall my_parent_is_alive ();
|
||||
extern "C" int __stdcall sig_dispatch_pending (int force = FALSE) __asm__ ("sig_dispatch_pending");
|
||||
extern "C" int __stdcall sig_dispatch_pending (int force = FALSE);
|
||||
extern "C" void __stdcall set_process_mask (sigset_t newmask);
|
||||
int __stdcall sig_handle (int);
|
||||
void __stdcall sig_clear (int);
|
||||
|
|
Loading…
Reference in New Issue