summaryrefslogtreecommitdiff
path: root/TAO/tao/Wait_On_Leader_Follower.cpp
diff options
context:
space:
mode:
authorbala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-04-11 01:53:54 +0000
committerbala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-04-11 01:53:54 +0000
commit0c9933b999cabc1c63ce9e82bc578c366f7920a3 (patch)
tree311d160061bb9114f0b089fdea671111148e45bb /TAO/tao/Wait_On_Leader_Follower.cpp
parent71c9fa249925ec14f29694bd6267e4bd5dda400d (diff)
downloadATCD-0c9933b999cabc1c63ce9e82bc578c366f7920a3.tar.gz
ChangeLogTag:Tue Apr 10 20:47:38 2001 Balachandran Natarajan <bala@cs.wustl.edu>
Diffstat (limited to 'TAO/tao/Wait_On_Leader_Follower.cpp')
-rw-r--r--TAO/tao/Wait_On_Leader_Follower.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/TAO/tao/Wait_On_Leader_Follower.cpp b/TAO/tao/Wait_On_Leader_Follower.cpp
index 39f3a3e9e9f..d614abbafbc 100644
--- a/TAO/tao/Wait_On_Leader_Follower.cpp
+++ b/TAO/tao/Wait_On_Leader_Follower.cpp
@@ -20,7 +20,10 @@ TAO_Wait_On_Leader_Follower::~TAO_Wait_On_Leader_Follower (void)
int
TAO_Wait_On_Leader_Follower::register_handler (void)
{
- return this->transport_->register_handler ();
+ if (this->is_registered_ == 0)
+ return this->transport_->register_handler ();
+
+ return 1;
}
int
@@ -34,9 +37,8 @@ TAO_Wait_On_Leader_Follower::sending_request (TAO_ORB_Core *orb_core,
int two_way)
{
// Register the handler.
- // @@ We could probably move this somewhere else, and remove this
- // function totally. (Alex).
- this->transport_->register_handler ();
+ if (this->is_registered_ == 0)
+ this->transport_->register_handler ();
// Send the request.
return this->TAO_Wait_Strategy::sending_request (orb_core,
@@ -151,18 +153,18 @@ TAO_Wait_On_Leader_Follower::wait (ACE_Time_Value *max_wait_time,
ACE_TEXT ("cond == 0 || cond->wait (tv) == -1\n"),
this->transport_));
- if (leader_follower.remove_follower (&node) == -1
+ if (leader_follower.remove_follower (&node) == -1
&& reply_received == 0)
{
- // Remove follower can fail because either
- // 1) the reply arrived, or
+ // Remove follower can fail because either
+ // 1) the reply arrived, or
// 2) somebody elected us as leader, or
// 3) the connection got closed.
//
// reply_received is 1, if the reply arrived.
// reply_received is 0, if the reply did not arrive yet.
// reply_received is -1, if the connection got closed
- //
+ //
// Therefore:
// If remove_follower fails and reply_received is 0, we know that
// we got elected as a leader. As we cannot be the leader (remember
@@ -171,12 +173,12 @@ TAO_Wait_On_Leader_Follower::wait (ACE_Time_Value *max_wait_time,
// ACE_DEBUG ((LM_DEBUG,
// "TAO (%P|%t) TAO_Wait_On_Leader_Follower::wait - "
// "We got elected as leader, but have timeout\n"));
-
+
if (leader_follower.elect_new_leader () == -1)
ACE_ERROR ((LM_ERROR,
"TAO (%P|%t) TAO_Wait_On_Leader_Follower::wait - "
"elect_new_leader failed\n"));
-
+
}
return -1;
}