* 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:
		| @@ -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. | ||||
|   | ||||
| @@ -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) | ||||
|   | ||||
| @@ -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: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user