diff options
Diffstat (limited to 'TAO/tao/Strategies/SHMIOP_Connection_Handler.cpp')
-rw-r--r-- | TAO/tao/Strategies/SHMIOP_Connection_Handler.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/TAO/tao/Strategies/SHMIOP_Connection_Handler.cpp b/TAO/tao/Strategies/SHMIOP_Connection_Handler.cpp index 802e34af5d5..14236742606 100644 --- a/TAO/tao/Strategies/SHMIOP_Connection_Handler.cpp +++ b/TAO/tao/Strategies/SHMIOP_Connection_Handler.cpp @@ -145,6 +145,9 @@ TAO_SHMIOP_Connection_Handler::activate (long flags, flags, THR_BOUND)); + // Set the id in the transport now that we're active. + this->transport ()->id ((int) this->get_handle ()); + return TAO_SHMIOP_SVC_HANDLER::activate (flags, n_threads, force_active, @@ -192,16 +195,18 @@ TAO_SHMIOP_Connection_Handler::handle_close (ACE_HANDLE handle, rm)); --this->pending_upcalls_; - if (this->pending_upcalls_ == 0 && - this->is_registered ()) + if (this->pending_upcalls_ == 0) { - // Make sure there are no timers. - this->reactor ()->cancel_timer (this); + if (this->is_registered ()) + { + // Make sure there are no timers. + this->reactor ()->cancel_timer (this); - // Set the flag to indicate that it is no longer registered with - // the reactor, so that it isn't included in the set that is - // passed to the reactor on ORB destruction. - this->is_registered (0); + // Set the flag to indicate that it is no longer registered with + // the reactor, so that it isn't included in the set that is + // passed to the reactor on ORB destruction. + this->is_registered (0); + } // Close the handle.. if (this->get_handle () != ACE_INVALID_HANDLE) |