* 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:
Christopher Faylor 2000-09-16 02:36:11 +00:00
parent cdfeaeb823
commit f9f2ed0e2b
5 changed files with 12 additions and 6 deletions

View File

@ -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

View File

@ -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;

View File

@ -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);

View File

@ -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.

View File

@ -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);