diff options
Diffstat (limited to 'ace/TP_Reactor.cpp')
-rw-r--r-- | ace/TP_Reactor.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/ace/TP_Reactor.cpp b/ace/TP_Reactor.cpp index 300a0d1c135..6957e50a8e9 100644 --- a/ace/TP_Reactor.cpp +++ b/ace/TP_Reactor.cpp @@ -87,22 +87,22 @@ ACE_TP_Reactor::handle_events (ACE_Time_Value *max_wait_time) // Update the countdown to reflect time waiting for the token. countdown.update (); - // Check for timeouts and errors. - if (result == -1) + switch (result) { + case 2: + ACE_MT (this->token_.release ()); + return 0; + case -1: if (errno == ETIME) return 0; - else - return -1; + return -1; } - // After acquiring the lock, check if we have been deactivated. If - // we are deactivated, simply return without handling further - // events. + // After acquiring the lock, check if we have been deactivated. if (this->deactivated_) { ACE_MT (this->token_.release ()); - return 0; + return -1; } // We got the lock, lets handle some events. Note: this method will @@ -143,6 +143,7 @@ ACE_TP_Reactor::handle_events (ACE_Time_Value *max_wait_time) } return result; + } int |