summaryrefslogtreecommitdiff
path: root/TAO/tao/Acceptor_Impl.cpp
diff options
context:
space:
mode:
authorkirthika <kirthika@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-08-03 23:54:28 +0000
committerkirthika <kirthika@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-08-03 23:54:28 +0000
commit5c799f507c0b741473a32eaafbc47ad18cf90b14 (patch)
tree6562f885e518069c86b4f4377872b3c43b340c9f /TAO/tao/Acceptor_Impl.cpp
parent4531c0210dd75bccba0fc1ffa6264e1e7c5ef831 (diff)
downloadATCD-5c799f507c0b741473a32eaafbc47ad18cf90b14.tar.gz
Tue Aug 03 18:40:47 1999 Kirthika Parameswaran
<kirthika@cs.wustl.edu>
Diffstat (limited to 'TAO/tao/Acceptor_Impl.cpp')
-rw-r--r--TAO/tao/Acceptor_Impl.cpp26
1 files changed, 22 insertions, 4 deletions
diff --git a/TAO/tao/Acceptor_Impl.cpp b/TAO/tao/Acceptor_Impl.cpp
index 6a6493049ce..fa123ff5473 100644
--- a/TAO/tao/Acceptor_Impl.cpp
+++ b/TAO/tao/Acceptor_Impl.cpp
@@ -133,11 +133,29 @@ TAO_Accept_Strategy<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::out_of_sockets_handler (v
// connection cache maintained by the connectors in the
// connector registry.
if (TAO_debug_level > 0)
- ACE_DEBUG ((LM_DEBUG, "Purging connections from Connectors in Connector Registry...\n"));
-
- return this->orb_core_->connector_registry ()->purge_connections ();
+ ACE_DEBUG ((LM_DEBUG,
+ "Purging connections from Connectors in Connector Registry of all ORBs...\n"));
+
+ ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard,
+ *ACE_Static_Object_Lock::instance (), 0));
+
+ TAO_ORB_Table *table = TAO_ORB_Table::instance ();
+ TAO_ORB_Table::Iterator end = table->end ();
+ for (TAO_ORB_Table::Iterator iterator = table->begin ();
+ iterator != end;
+ ++iterator)
+ {
+ TAO_ORB_Core *orb_core = (*iterator).int_id_;
+
+ int result = orb_core->connector_registry ()->purge_connections ();
+
+ if (result != 0)
+ return result;
+ }
+
+ return 0;
}
-
+
return -1;
}