* 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> Tue Sep 11 11:23:10 2001 Christopher Faylor <cgf@cygnus.com>
* cygwin.din: Remove cygwin_getshared. * cygwin.din: Remove cygwin_getshared.

View File

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

View File

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