* sigproc.h (sigframe::unregister): Return true/false whether this frame is

capable of responding to signals.
* exceptions.cc (sigframe::call_signal_handler): Don't call signal handler if
it is not armed for this thread.
This commit is contained in:
Christopher Faylor 2001-09-12 01:56:32 +00:00
parent e3c25c4a47
commit 101f820da2
3 changed files with 19 additions and 12 deletions

View File

@ -1,3 +1,10 @@
Tue Sep 11 21:55:37 2001 Christopher Faylor <cgf@cygnus.com>
* sigproc.h (sigframe::unregister): Return true/false whether this
frame is capable of responding to signals.
* exceptions.cc (sigframe::call_signal_handler): Don't call signal
handler if it is not armed for this thread.
Tue Sep 11 11:23:10 2001 Christopher Faylor <cgf@cygnus.com>
* cygwin.din: Remove cygwin_getshared.

View File

@ -1142,8 +1142,8 @@ static int __stdcall call_signal_handler_now_dummy ()
int
sigframe::call_signal_handler ()
{
unregister ();
return call_signal_handler_now ();
return unregister () ? call_signal_handler_now () : 0;
}
#define pid_offset (unsigned)(((_pinfo *)NULL)->pid)

View File

@ -50,17 +50,17 @@ class sigframe
{
private:
sigthread *st;
void unregister ()
bool unregister ()
{
if (st)
{
EnterCriticalSection (&st->lock);
st->frame = 0;
st->exception = 0;
st->release_winapi_lock ();
LeaveCriticalSection (&st->lock);
st = NULL;
}
if (!st)
return 0;
EnterCriticalSection (&st->lock);
st->frame = 0;
st->exception = 0;
st->release_winapi_lock ();
LeaveCriticalSection (&st->lock);
st = NULL;
return 1;
}
public: