summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2001-06-20 23:48:13 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2001-06-20 23:48:13 +0000
commit5aecb73a31e6a0a0758e2ff19c17fb22b7fb144b (patch)
tree765fe14bdf68b9310e40150b5d9c863b3c67d2cc
parentbd1dcd3c460b27d635f5230f26ecfe32eb251fdb (diff)
downloadATCD-5aecb73a31e6a0a0758e2ff19c17fb22b7fb144b.tar.gz
*** empty log message ***
-rw-r--r--TAO/orbsvcs/orbsvcs/LB_ReplicaInfo.h2
-rw-r--r--TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Pull_Handler.cpp35
-rw-r--r--TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ReplicaInfo.h2
3 files changed, 34 insertions, 5 deletions
diff --git a/TAO/orbsvcs/orbsvcs/LB_ReplicaInfo.h b/TAO/orbsvcs/orbsvcs/LB_ReplicaInfo.h
index 8e8df996c86..706b165350b 100644
--- a/TAO/orbsvcs/orbsvcs/LB_ReplicaInfo.h
+++ b/TAO/orbsvcs/orbsvcs/LB_ReplicaInfo.h
@@ -27,8 +27,6 @@
class TAO_LB_ReplicaInfo;
typedef ACE_Unbounded_Set<TAO_LB_ReplicaInfo *> TAO_LB_ReplicaInfo_Set;
-typedef ACE_Unbounded_Set_Iterator<TAO_LB_ReplicaInfo *> TAO_LB_ReplicaInfo_Set_Iterator;
-
/**
* @class TAO_LB_ReplicaInfo
diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Pull_Handler.cpp b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Pull_Handler.cpp
index a0aa7f4397b..972d1ca143c 100644
--- a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Pull_Handler.cpp
+++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Pull_Handler.cpp
@@ -33,7 +33,40 @@ TAO_LB_Pull_Handler::handle_timeout (
{
TAO_LB_ObjectGroup_Map_Entry *object_group = i->ext_id_;
-
+ ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, guard, object_group->lock, 0);
+
+ if (entry->replica_infos.is_empty ())
+ // @@ What do we do if the set is empty?
+ continue;
+
+ TAO_LB_ReplicaInfo_Set::iterator begin =
+ object_group->replica_infos.begin ();
+
+ TAO_LB_ReplicaInfo_Set::iterator end =
+ object_group->replica_infos.end ();
+
+ // Now iterate over the replica set.
+
+ TAO_LB_ReplicaInfo *replica_info = (*i);
+
+ for (TAO_LB_ReplicaInfo_Set::iterator i = begin;
+ i != end;
+ ++i)
+ {
+ LoadBalancing::LoadList_var load =
+ (*i)->load_monitor->current_load (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (CORBA::Object::_nil ());
+
+ // @@ Hardcode one load and don't bother checking the
+ // LoadId, for now. (just to get things going)
+ if (d[CORBA::Long (0)].value > load[CORBA::Long (0)].value)
+ {
+ replica_info = *i;
+ d = (*i)->load_monitor->current_load (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (CORBA::Object::_nil ());
+ }
+ }
+
}
diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ReplicaInfo.h b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ReplicaInfo.h
index 8e8df996c86..706b165350b 100644
--- a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ReplicaInfo.h
+++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ReplicaInfo.h
@@ -27,8 +27,6 @@
class TAO_LB_ReplicaInfo;
typedef ACE_Unbounded_Set<TAO_LB_ReplicaInfo *> TAO_LB_ReplicaInfo_Set;
-typedef ACE_Unbounded_Set_Iterator<TAO_LB_ReplicaInfo *> TAO_LB_ReplicaInfo_Set_Iterator;
-
/**
* @class TAO_LB_ReplicaInfo