summaryrefslogtreecommitdiff
path: root/TAO/tao/Strategies/SHMIOP_Connection_Handler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Strategies/SHMIOP_Connection_Handler.cpp')
-rw-r--r--TAO/tao/Strategies/SHMIOP_Connection_Handler.cpp21
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)