summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/sigproc.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/sigproc.cc')
-rw-r--r--winsup/cygwin/sigproc.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
index 25bce8468..e143a8239 100644
--- a/winsup/cygwin/sigproc.cc
+++ b/winsup/cygwin/sigproc.cc
@@ -1,6 +1,6 @@
/* sigproc.cc: inter/intra signal and sub process handler
- Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003 Red Hat, Inc.
+ Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
Written by Christopher Faylor
@@ -32,6 +32,7 @@ details. */
#include "cygtls.h"
#include "sigproc.h"
#include "perthread.h"
+#include "exceptions.h"
/*
* Convenience defines
@@ -1105,12 +1106,17 @@ wait_sig (VOID *self)
SetEvent (wait_sig_inited);
sigtid = GetCurrentThreadId ();
+ exception_list el;
+ _my_tls.init_threadlist_exceptions (&el);
+
for (;;)
{
DWORD nb;
sigpacket pack;
if (!ReadFile (readsig, &pack, sizeof (pack), &nb, NULL))
break;
+ if (myself->sendsig == INVALID_HANDLE_VALUE)
+ break;
if (nb != sizeof (pack))
{