diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index dc73370d3..338242830 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +Fri Sep 15 22:30:40 2000 Christopher Faylor + + * 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 * spawn.cc (av): Hide 'calloced' field and limit cstrduping to class diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index e71c4a7b1..82ef8861c 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -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; diff --git a/winsup/cygwin/external.cc b/winsup/cygwin/external.cc index 1bd86f5da..3a04453ed 100644 --- a/winsup/cygwin/external.cc +++ b/winsup/cygwin/external.cc @@ -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); diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index 8372cb00e..7bb0309a0 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -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. diff --git a/winsup/cygwin/sigproc.h b/winsup/cygwin/sigproc.h index 915e54ad7..9dd3ce8ca 100644 --- a/winsup/cygwin/sigproc.h +++ b/winsup/cygwin/sigproc.h @@ -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);