diff options
author | Benoit Foucher <benoit@zeroc.com> | 2006-03-24 14:32:35 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2006-03-24 14:32:35 +0000 |
commit | c9a1e3aad627ee02dd5a17b374528f48c9ebe157 (patch) | |
tree | 912ba1a8707db30c1ce7fa6792691e90c824732a /cpp/src/IceGrid/Database.cpp | |
parent | Fix (diff) | |
download | ice-c9a1e3aad627ee02dd5a17b374528f48c9ebe157.tar.bz2 ice-c9a1e3aad627ee02dd5a17b374528f48c9ebe157.tar.xz ice-c9a1e3aad627ee02dd5a17b374528f48c9ebe157.zip |
Fixed bug 916.
Diffstat (limited to 'cpp/src/IceGrid/Database.cpp')
-rw-r--r-- | cpp/src/IceGrid/Database.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/cpp/src/IceGrid/Database.cpp b/cpp/src/IceGrid/Database.cpp index e7e20fd3a43..c77ad832dfd 100644 --- a/cpp/src/IceGrid/Database.cpp +++ b/cpp/src/IceGrid/Database.cpp @@ -8,6 +8,7 @@ // ********************************************************************** #include <IceUtil/StringUtil.h> +#include <IceUtil/Random.h> #include <Freeze/Freeze.h> #include <IceGrid/Database.h> #include <IceGrid/TraceLevels.h> @@ -765,7 +766,7 @@ Database::getAdapters(const string& id, bool allRegistered, int& endpointCount) adpts.push_back(make_pair(p->first, adpt)); ++p; } - random_shuffle(adpts.begin(), adpts.end()); + random_shuffle(adpts.begin(), adpts.end(), IceUtil::random); endpointCount = static_cast<int>(adpts.size()); return adpts; } @@ -927,14 +928,14 @@ Ice::ObjectPrx Database::getObjectByType(const string& type) { Ice::ObjectProxySeq objs = getObjectsByType(type); - return objs[rand() % objs.size()]; + return objs[IceUtil::random(objs.size())]; } Ice::ObjectPrx Database::getObjectByTypeOnLeastLoadedNode(const string& type, LoadSample sample) { Ice::ObjectProxySeq objs = getObjectsByType(type); - random_shuffle(objs.begin(), objs.end()); + random_shuffle(objs.begin(), objs.end(), IceUtil::random); vector<pair<Ice::ObjectPrx, float> > objectsWithLoad; objectsWithLoad.reserve(objs.size()); for(Ice::ObjectProxySeq::const_iterator p = objs.begin(); p != objs.end(); ++p) |