summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>2003-01-06 23:34:53 +0000
committerbala <balanatarajan@users.noreply.github.com>2003-01-06 23:34:53 +0000
commitecc36f7568c8c9cfbf65fc66242dc1d938912e71 (patch)
tree1c64c8372a24199e5eaf6d85478f3ed2f8fbd936
parent20fd23f1a2a84c949e3d3b8e35e9a7ea152e0e2d (diff)
downloadATCD-ecc36f7568c8c9cfbf65fc66242dc1d938912e71.tar.gz
ChangeLogTag: Mon Jan 6 17:31:03 2003 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu>
-rw-r--r--TAO/ChangeLog11
-rw-r--r--TAO/tao/LF_Connect_Strategy.cpp2
-rw-r--r--TAO/tao/Reactive_Connect_Strategy.cpp8
3 files changed, 14 insertions, 7 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index f5047cb9f04..3e2c2e12f54 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,14 @@
+Mon Jan 6 17:31:03 2003 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu>
+
+ * tao/Reactive_Connect_Strategy.cpp:
+ * tao/LF_Connect_Strategy.cpp: Used the cached pointer to access
+ the ORB_Core, instead of accessing the ORB_Core in the
+ transport. The reason why this should be done this way is too
+ involved to explain here, but suffice to say that in highly
+ multi-threaded environments the transports could dis-sappear
+ before the connection handlers. Accessing the ORB_Core from the
+ transport could then lead to vague crashes.
+
Mon Jan 6 17:12:40 2003 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu>
diff --git a/TAO/tao/LF_Connect_Strategy.cpp b/TAO/tao/LF_Connect_Strategy.cpp
index 69e7e3ddbcd..698ade4f464 100644
--- a/TAO/tao/LF_Connect_Strategy.cpp
+++ b/TAO/tao/LF_Connect_Strategy.cpp
@@ -71,7 +71,7 @@ TAO_LF_Connect_Strategy::wait (TAO_Connection_Handler *ch,
}
TAO_Leader_Follower &leader_follower =
- transport->orb_core ()->leader_follower ();
+ this->orb_core_->leader_follower ();
int result =
leader_follower.wait_for_event (ch,
diff --git a/TAO/tao/Reactive_Connect_Strategy.cpp b/TAO/tao/Reactive_Connect_Strategy.cpp
index f089853141c..7d3af7b322f 100644
--- a/TAO/tao/Reactive_Connect_Strategy.cpp
+++ b/TAO/tao/Reactive_Connect_Strategy.cpp
@@ -47,19 +47,15 @@ TAO_Reactive_Connect_Strategy::wait (TAO_Connection_Handler *ch,
ACE_LIB_TEXT ("(%P|%t) Waiting in the Reactor for")
ACE_LIB_TEXT (" connection completion - wait () \n")));
- TAO_Transport *transport =
- ch->transport ();
-
int result = 0;
ACE_DECLARE_NEW_CORBA_ENV;
ACE_TRY
{
- TAO_ORB_Core *orb_core = transport->orb_core ();
-
while (ch->keep_waiting ())
{
- result = orb_core->run (max_wait_time, 1 ACE_ENV_ARG_PARAMETER);
+ result =
+ this->orb_core_->run (max_wait_time, 1 ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
// Did we timeout? If so, stop running the loop.