summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog7
-rw-r--r--winsup/cygwin/exceptions.cc5
-rw-r--r--winsup/cygwin/external.cc2
-rw-r--r--winsup/cygwin/sigproc.cc2
-rw-r--r--winsup/cygwin/sigproc.h2
5 files changed, 12 insertions, 6 deletions
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 <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
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);