* sigproc.cc (pending_signals::pending): Define new function.
(sig_dispatch_pending): Avoid calling sig_send if there are no pending signals.
This commit is contained in:
		| @@ -1,3 +1,9 @@ | |||||||
|  | 2011-07-31  Christopher Faylor  <me.cygwin2011@cgf.cx> | ||||||
|  |  | ||||||
|  | 	* sigproc.cc (pending_signals::pending): Define new function. | ||||||
|  | 	(sig_dispatch_pending): Avoid calling sig_send if there are no pending | ||||||
|  | 	signals. | ||||||
|  |  | ||||||
| 2011-07-31  Corinna Vinschen  <corinna@vinschen.de> | 2011-07-31  Corinna Vinschen  <corinna@vinschen.de> | ||||||
|  |  | ||||||
| 	* fhandler.h (class fhandler_dev_mem): Remove dup method declaration. | 	* fhandler.h (class fhandler_dev_mem): Remove dup method declaration. | ||||||
|   | |||||||
| @@ -88,6 +88,7 @@ public: | |||||||
|   void reset () {curr = &start; prev = &start;} |   void reset () {curr = &start; prev = &start;} | ||||||
|   void add (sigpacket&); |   void add (sigpacket&); | ||||||
|   void del (); |   void del (); | ||||||
|  |   bool pending () const {return !!start.next;} | ||||||
|   sigpacket *next (); |   sigpacket *next (); | ||||||
|   sigpacket *save () const {return curr;} |   sigpacket *save () const {return curr;} | ||||||
|   void restore (sigpacket *saved) {curr = saved;} |   void restore (sigpacket *saved) {curr = saved;} | ||||||
| @@ -431,7 +432,13 @@ sig_dispatch_pending (bool fast) | |||||||
|       return; |       return; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   sig_send (myself, fast ? __SIGFLUSHFAST : __SIGFLUSH); |   /* Non-atomically test for any signals pending and wake up wait_sig if any are | ||||||
|  |      found.  It's ok if there's a race here since the next call to this function | ||||||
|  |      should catch it. | ||||||
|  |      FIXME: Eventually, wait_sig should wake up on its own to deal with pending | ||||||
|  |      signals. */ | ||||||
|  |   if (sigq.pending ()) | ||||||
|  |     sig_send (myself, fast ? __SIGFLUSHFAST : __SIGFLUSH); | ||||||
| } | } | ||||||
|  |  | ||||||
| void __stdcall | void __stdcall | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user