aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin/exceptions.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2001-04-25 19:11:37 +0000
committerChristopher Faylor <me@cgf.cx>2001-04-25 19:11:37 +0000
commit968d91b2e6156e84c9fa5a6534364861446549f8 (patch)
treec5d41a6fb28343ad532dd4c96cf27896568493d0 /winsup/cygwin/exceptions.cc
parent86699e1555e3f8438e23530f1a0b49ff87330686 (diff)
downloadnewlib-968d91b2e6156e84c9fa5a6534364861446549f8.zip
newlib-968d91b2e6156e84c9fa5a6534364861446549f8.tar.gz
newlib-968d91b2e6156e84c9fa5a6534364861446549f8.tar.bz2
* sigproc.h [sigthread]: Add exception field.
[sigframe::~sigframe]: Clear exception field. [sigframe::set]: Set exception field from caller. * sigproc.cc (sig_send): Set exception field when frame pointer is passed in. * exceptions.cc (interrupt_on_return): Always treat exception as interruptible.
Diffstat (limited to 'winsup/cygwin/exceptions.cc')
-rw-r--r--winsup/cygwin/exceptions.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index 880c403..03e00ea 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -735,7 +735,7 @@ interrupt_on_return (sigthread *th, int sig, void *handler, struct sigaction& si
thestack.init (ebp); /* Initialize from the input CONTEXT */
for (i = 0; i < 32 && thestack++ ; i++)
- if (interruptible (thestack.sf.AddrReturn.Offset))
+ if (th->exception || interruptible (thestack.sf.AddrReturn.Offset))
{
DWORD *addr_retaddr = ((DWORD *)thestack.sf.AddrFrame.Offset) + 1;
if (*addr_retaddr == thestack.sf.AddrReturn.Offset)