From 775275aac7f96c2fdccbefde960afd7eda079a7a Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Fri, 16 Aug 2002 19:07:28 +0000 Subject: * exceptions.cc (interrupt_setup): Ensure that the previous signal mask is properly saved. --- winsup/cygwin/exceptions.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'winsup/cygwin/exceptions.cc') diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index 9e2e631ec..914e4424d 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -686,7 +686,8 @@ interrupt_setup (int sig, void *handler, DWORD retaddr, DWORD *retaddr_on_stack, sigsave.retaddr = retaddr; sigsave.retaddr_on_stack = retaddr_on_stack; /* FIXME: Not multi-thread aware */ - sigsave.newmask = myself->getsigmask () | siga.sa_mask | SIGTOMASK (sig); + sigsave.oldmask = myself->getsigmask (); + sigsave.newmask = sigsave.oldmask | siga.sa_mask | SIGTOMASK (sig); sigsave.sa_flags = siga.sa_flags; sigsave.func = (void (*)(int)) handler; sigsave.sig = sig; -- cgit v1.2.3