Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2001-05-03 19:00:38 +0400
committerChristopher Faylor <me@cgf.cx>2001-05-03 19:00:38 +0400
commit70c7f359b1fd9aefb9b32fe7486e6909fc81e306 (patch)
tree3c841eec1394d30dbbd2839c530431714dd113d9 /winsup
parenta6a0193b2fe6f83c7c0970afd5afecf28fba5595 (diff)
* exceptions.cc (handle_exceptions): Break out of "loop" if the debugger
doesn't seem to be attaching to our process.
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/exceptions.cc2
-rw-r--r--winsup/cygwin/select.cc1
-rw-r--r--winsup/cygwin/sigproc.cc4
4 files changed, 9 insertions, 3 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 5a63b823d..fd297a08f 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+Thu May 3 10:44:16 2001 Christopher Faylor <cgf@cygnus.com>
+
+ * exceptions.cc (handle_exceptions): Break out of "loop" if the
+ debugger doesn't seem to be attaching to our process.
+
Wed May 2 20:18:00 2001 Corinna Vinschen <corinna@vinschen.de>
* autoload.cc: Use new definition of LoadDLLinitfunc throughout.
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index 681ca3971..96a2d5953 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -397,7 +397,7 @@ handle_exceptions (EXCEPTION_RECORD *e, void *, CONTEXT *in, void *)
static int NO_COPY debugging = 0;
static int NO_COPY recursed = 0;
- if (debugging)
+ if (debugging && ++debugging < 50)
return 0;
/* If we've already exited, don't do anything here. Returning 1
diff --git a/winsup/cygwin/select.cc b/winsup/cygwin/select.cc
index c23073918..3716a7932 100644
--- a/winsup/cygwin/select.cc
+++ b/winsup/cygwin/select.cc
@@ -1334,6 +1334,7 @@ socket_cleanup (select_record *, select_stuff *stuff)
/* Set LINGER with 0 timeout for hard close */
struct linger tmp = {1, 0}; /* On, 0 delay */
(void) setsockopt (s, SOL_SOCKET, SO_LINGER, (char *)&tmp, sizeof(tmp));
+ (void) setsockopt (si->exitsock, SOL_SOCKET, SO_LINGER, (char *)&tmp, sizeof(tmp));
/* Connecting to si->exitsock will cause any executing select to wake
up. When this happens then the exitsock condition will cause the
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
index c7b0a491f..a44e31611 100644
--- a/winsup/cygwin/sigproc.cc
+++ b/winsup/cygwin/sigproc.cc
@@ -1144,7 +1144,7 @@ wait_sig (VOID *)
if (sig > 0 && sig != SIGKILL && sig != SIGSTOP &&
(sigismember (&myself->getsigmask (), sig) ||
- (sig != SIGCONT && ISSTATE (myself, PID_STOPPED))))
+ (sig != SIGCONT && ISSTATE (myself, PID_STOPPED))))
{
sigproc_printf ("signal %d blocked", sig);
break;
@@ -1172,7 +1172,7 @@ wait_sig (VOID *)
/* Need to decrement again to offset increment below since
we really do want to decrement in this case. */
InterlockedDecrement (myself->getsigtodo (sig));
- goto nextsig;
+ goto nextsig; /* FIXME: shouldn't this allow the loop to continue? */
}
}