diff options
author | Christopher Faylor <me@cgf.cx> | 2001-05-03 19:00:38 +0400 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2001-05-03 19:00:38 +0400 |
commit | 70c7f359b1fd9aefb9b32fe7486e6909fc81e306 (patch) | |
tree | 3c841eec1394d30dbbd2839c530431714dd113d9 /winsup | |
parent | a6a0193b2fe6f83c7c0970afd5afecf28fba5595 (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/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/exceptions.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/select.cc | 1 | ||||
-rw-r--r-- | winsup/cygwin/sigproc.cc | 4 |
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? */ } } |