* 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.
This commit is contained in:
Christopher Faylor
2001-04-25 19:11:37 +00:00
parent 86699e1555
commit 968d91b2e6
4 changed files with 16 additions and 3 deletions

View File

@ -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)