diff options
author | Ossama Othman <ossama-othman@users.noreply.github.com> | 2001-06-20 23:48:13 +0000 |
---|---|---|
committer | Ossama Othman <ossama-othman@users.noreply.github.com> | 2001-06-20 23:48:13 +0000 |
commit | 5aecb73a31e6a0a0758e2ff19c17fb22b7fb144b (patch) | |
tree | 765fe14bdf68b9310e40150b5d9c863b3c67d2cc | |
parent | bd1dcd3c460b27d635f5230f26ecfe32eb251fdb (diff) | |
download | ATCD-5aecb73a31e6a0a0758e2ff19c17fb22b7fb144b.tar.gz |
*** empty log message ***
-rw-r--r-- | TAO/orbsvcs/orbsvcs/LB_ReplicaInfo.h | 2 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Pull_Handler.cpp | 35 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ReplicaInfo.h | 2 |
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 |