diff options
author | bala <balanatarajan@users.noreply.github.com> | 2005-03-18 16:36:14 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 2005-03-18 16:36:14 +0000 |
commit | 700ddc43a5f0778d1db1ac1590b1e5093dcfddda (patch) | |
tree | d19b00e190b069cfd6171909d0162cf68e9117ab /TAO/tao | |
parent | aee89763b5c955e471bd225c779fa76fd814e529 (diff) | |
download | ATCD-700ddc43a5f0778d1db1ac1590b1e5093dcfddda.tar.gz |
ChangeLogTag:Fri Mar 18 10:34:48 2005 Balachandran Natarajan <bala@dre.vanderbilt.edu>
Diffstat (limited to 'TAO/tao')
-rw-r--r-- | TAO/tao/Transport.cpp | 6 | ||||
-rw-r--r-- | TAO/tao/Transport.h | 9 | ||||
-rw-r--r-- | TAO/tao/Transport_Cache_Manager.cpp | 9 |
3 files changed, 18 insertions, 6 deletions
diff --git a/TAO/tao/Transport.cpp b/TAO/tao/Transport.cpp index 2f91c46f898..d9adb1800b6 100644 --- a/TAO/tao/Transport.cpp +++ b/TAO/tao/Transport.cpp @@ -177,16 +177,18 @@ TAO_Transport::provide_handler (TAO::Connection_Handler_Set &handlers) handlers.insert (this->connection_handler_i ()); } -void +bool TAO_Transport::provide_blockable_handler (TAO::Connection_Handler_Set &h) { if (this->ws_->non_blocking () || this->opening_connection_role_ == TAO::TAO_SERVER_ROLE) - return; + return false; (void) this->add_reference (); h.insert (this->connection_handler_i ()); + + return true; } bool diff --git a/TAO/tao/Transport.h b/TAO/tao/Transport.h index b521afeaaed..0a8f84a6970 100644 --- a/TAO/tao/Transport.h +++ b/TAO/tao/Transport.h @@ -325,9 +325,14 @@ public: * Called by the cache when the ORB is shuting down. * * @param handlers The TAO_Connection_Handler_Set into which the - * transport should place its handler + * transport should place its handler if the transport has RW + * strategy on. + * + * @return true indicates a handler was added to the handler set. + * false indocates that the transport did not have a + * blockable handler that could be added. */ - void provide_blockable_handler (TAO::Connection_Handler_Set &handlers); + bool provide_blockable_handler (TAO::Connection_Handler_Set &handlers); /// Register the handler with the reactor. /** diff --git a/TAO/tao/Transport_Cache_Manager.cpp b/TAO/tao/Transport_Cache_Manager.cpp index 3c81ae877e1..c1c03f003dc 100644 --- a/TAO/tao/Transport_Cache_Manager.cpp +++ b/TAO/tao/Transport_Cache_Manager.cpp @@ -338,8 +338,13 @@ namespace TAO { // Get the transport to fill its associated connection's // handler. - (*iter).int_id_.transport ()->provide_blockable_handler (h); - (*iter).int_id_.recycle_state (ENTRY_CLOSED); + bool retval = + (*iter).int_id_.transport ()->provide_blockable_handler (h); + + // Do not mark the entry as closed if we don't have a + // blockable handler added + if (retval) + (*iter).int_id_.recycle_state (ENTRY_CLOSED); } return true; |