summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/Database.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/Database.cpp')
-rw-r--r--cpp/src/IceGrid/Database.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/cpp/src/IceGrid/Database.cpp b/cpp/src/IceGrid/Database.cpp
index c77ad832dfd..9e270c2ff40 100644
--- a/cpp/src/IceGrid/Database.cpp
+++ b/cpp/src/IceGrid/Database.cpp
@@ -766,7 +766,11 @@ Database::getAdapters(const string& id, bool allRegistered, int& endpointCount)
adpts.push_back(make_pair(p->first, adpt));
++p;
}
+#ifdef _MSC_VER
+ random_shuffle(adpts.begin(), adpts.end(), ptr_fun(IceUtil::random));
+#else
random_shuffle(adpts.begin(), adpts.end(), IceUtil::random);
+#endif
endpointCount = static_cast<int>(adpts.size());
return adpts;
}
@@ -935,7 +939,11 @@ Ice::ObjectPrx
Database::getObjectByTypeOnLeastLoadedNode(const string& type, LoadSample sample)
{
Ice::ObjectProxySeq objs = getObjectsByType(type);
+#ifdef _MSC_VER
+ random_shuffle(objs.begin(), objs.end(), ptr_fun(IceUtil::random));
+#else
random_shuffle(objs.begin(), objs.end(), IceUtil::random);
+#endif
vector<pair<Ice::ObjectPrx, float> > objectsWithLoad;
objectsWithLoad.reserve(objs.size());
for(Ice::ObjectProxySeq::const_iterator p = objs.begin(); p != objs.end(); ++p)