aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin/exceptions.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2000-10-18 04:53:37 +0000
committerChristopher Faylor <me@cgf.cx>2000-10-18 04:53:37 +0000
commitac944e37d029c8bc9e38a51be76fece99a2826f1 (patch)
tree26faad099a731a19876502ed4b278a6bd43bcda7 /winsup/cygwin/exceptions.cc
parent3f7bd531155175f7c8158b68fcaf9e1aa98f9c1d (diff)
downloadnewlib-ac944e37d029c8bc9e38a51be76fece99a2826f1.zip
newlib-ac944e37d029c8bc9e38a51be76fece99a2826f1.tar.gz
newlib-ac944e37d029c8bc9e38a51be76fece99a2826f1.tar.bz2
* exceptions.cc (call_handler): Make signal pending if sigsave.sig is still
active. * syscalls.cc (_read): Don't clear errno. * sigproc.cc (wait_sig): Don't scan the waiting process list after a SIGCHLD if there are no zombies to reap. * winsup.h: Use __builtin_strcmp. * environ.cc (posify): Don't initialize len unless it is required (from DJ Delorie <dj@redhat.com>).
Diffstat (limited to 'winsup/cygwin/exceptions.cc')
-rw-r--r--winsup/cygwin/exceptions.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index 75ad01c..c4b87f0 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -216,7 +216,7 @@ public:
/* This is the main stack frame info for this process. */
static NO_COPY stack_info thestack;
-signal_dispatch sigsave;
+static signal_dispatch sigsave;
/* Initialize everything needed to start iterating. */
void
@@ -711,6 +711,9 @@ call_handler (int sig, struct sigaction& siga, void *handler)
mainthread.lock->acquire ();
+ if (sigsave.sig)
+ goto set_pending;
+
if (mainthread.frame)
{
ebp = mainthread.frame;