From 1fcd966e469e43926004ed3fa74f74703c49f013 Mon Sep 17 00:00:00 2001 From: Benoit Foucher Date: Mon, 20 Mar 2006 17:15:41 +0000 Subject: Fixed bug 908 --- cpp/src/IceGrid/ServerCache.cpp | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'cpp/src/IceGrid/ServerCache.cpp') diff --git a/cpp/src/IceGrid/ServerCache.cpp b/cpp/src/IceGrid/ServerCache.cpp index 6a1c636770b..7a03465928e 100644 --- a/cpp/src/IceGrid/ServerCache.cpp +++ b/cpp/src/IceGrid/ServerCache.cpp @@ -431,15 +431,28 @@ ServerEntry::getApplication() const float ServerEntry::getLoad(LoadSample sample) const { - Lock sync(*this); - if(!_loaded.get() && !_load.get()) + string application; + string node; { - throw ServerNotExistException(); + Lock sync(*this); + if(_loaded.get()) + { + application = _loaded->application; + node = _loaded->node; + } + else if(_load.get()) + { + application = _load->application; + node = _load->node; + } + else + { + throw ServerNotExistException(); + } } - ServerInfo& info = _proxy ? *_loaded.get() : *_load.get(); float factor; - LoadInfo load = _cache.getNodeCache().get(info.node)->getLoadInfoAndLoadFactor(info.application, factor); + LoadInfo load = _cache.getNodeCache().get(node)->getLoadInfoAndLoadFactor(application, factor); switch(sample) { case LoadSample1: -- cgit v1.2.3