summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/Reference.cpp7
-rw-r--r--cpp/src/IceGrid/AdapterCache.cpp9
-rw-r--r--cpp/src/IceGrid/AllocatableObjectCache.cpp3
-rw-r--r--cpp/src/IceGrid/Database.cpp6
4 files changed, 17 insertions, 8 deletions
diff --git a/cpp/src/Ice/Reference.cpp b/cpp/src/Ice/Reference.cpp
index 6ded5007926..fbb59273cd2 100644
--- a/cpp/src/Ice/Reference.cpp
+++ b/cpp/src/Ice/Reference.cpp
@@ -44,6 +44,7 @@ struct RandomNumberGenerator : public std::unary_function<ptrdiff_t, ptrdiff_t>
return IceUtil::random(static_cast<int>(d));
}
};
+
}
CommunicatorPtr
@@ -663,7 +664,8 @@ IceInternal::FixedReference::filterConnections(const vector<ConnectionIPtr>& all
//
// Randomize the order of connections.
//
- random_shuffle(connections.begin(), connections.end(), RandomNumberGenerator());
+ RandomNumberGenerator rng;
+ random_shuffle(connections.begin(), connections.end(), rng);
//
// If a secure connection is requested, remove all non-secure
@@ -1065,7 +1067,8 @@ IceInternal::RoutableReference::createConnection(const vector<EndpointIPtr>& all
{
case Random:
{
- random_shuffle(endpoints.begin(), endpoints.end(), RandomNumberGenerator());
+ RandomNumberGenerator rng;
+ random_shuffle(endpoints.begin(), endpoints.end(), rng);
break;
}
case Ordered:
diff --git a/cpp/src/IceGrid/AdapterCache.cpp b/cpp/src/IceGrid/AdapterCache.cpp
index 7a43d8c7d54..04b763f3527 100644
--- a/cpp/src/IceGrid/AdapterCache.cpp
+++ b/cpp/src/IceGrid/AdapterCache.cpp
@@ -365,14 +365,16 @@ ReplicaGroupEntry::getProxies(int& nReplicas, bool& replicaGroup)
else if(AdaptiveLoadBalancingPolicyPtr::dynamicCast(_loadBalancing))
{
replicas = _replicas;
- random_shuffle(replicas.begin(), replicas.end(), RandomNumberGenerator());
+ RandomNumberGenerator rng;
+ random_shuffle(replicas.begin(), replicas.end(), rng);
adaptive = true;
loadSample = _loadSample;
}
else// if(RandomLoadBalancingPolicyPtr::dynamicCast(_loadBalancing))
{
replicas = _replicas;
- random_shuffle(replicas.begin(), replicas.end(), RandomNumberGenerator());
+ RandomNumberGenerator rng;
+ random_shuffle(replicas.begin(), replicas.end(), rng);
}
}
@@ -439,7 +441,8 @@ ReplicaGroupEntry::getLeastLoadedNodeLoad(LoadSample loadSample) const
// This must be done outside the synchronization block since
// min_element() will call and lock each server entry.
//
- random_shuffle(replicas.begin(), replicas.end(), RandomNumberGenerator());
+ RandomNumberGenerator rng;
+ random_shuffle(replicas.begin(), replicas.end(), rng);
vector<ReplicaLoadComp::ReplicaLoad> rl;
transform(replicas.begin(), replicas.end(), back_inserter(rl), ToReplicaLoad(loadSample));
AdapterEntryPtr adpt = min_element(rl.begin(), rl.end(), ReplicaLoadComp())->second.second;
diff --git a/cpp/src/IceGrid/AllocatableObjectCache.cpp b/cpp/src/IceGrid/AllocatableObjectCache.cpp
index f5275da7e43..341d110a56b 100644
--- a/cpp/src/IceGrid/AllocatableObjectCache.cpp
+++ b/cpp/src/IceGrid/AllocatableObjectCache.cpp
@@ -196,7 +196,8 @@ AllocatableObjectCache::allocateByType(const string& type, const ObjectAllocatio
}
vector<AllocatableObjectEntryPtr> objects = p->second.getObjects();
- random_shuffle(objects.begin(), objects.end(), RandomNumberGenerator()); // TODO: OPTIMIZE
+ RandomNumberGenerator rng;
+ random_shuffle(objects.begin(), objects.end(), rng); // TODO: OPTIMIZE
try
{
for(vector<AllocatableObjectEntryPtr>::const_iterator q = objects.begin(); q != objects.end(); ++q)
diff --git a/cpp/src/IceGrid/Database.cpp b/cpp/src/IceGrid/Database.cpp
index 251745fafb2..1ee45b553e8 100644
--- a/cpp/src/IceGrid/Database.cpp
+++ b/cpp/src/IceGrid/Database.cpp
@@ -809,7 +809,8 @@ Database::getAdapters(const string& id, int& endpointCount, bool& replicaGroup)
adpts.push_back(make_pair(p->first, adpt));
++p;
}
- random_shuffle(adpts.begin(), adpts.end(), RandomNumberGenerator());
+ RandomNumberGenerator rng;
+ random_shuffle(adpts.begin(), adpts.end(), rng);
replicaGroup = true;
endpointCount = static_cast<int>(adpts.size());
return adpts;
@@ -1072,7 +1073,8 @@ Ice::ObjectPrx
Database::getObjectByTypeOnLeastLoadedNode(const string& type, LoadSample sample)
{
Ice::ObjectProxySeq objs = getObjectsByType(type);
- random_shuffle(objs.begin(), objs.end(), RandomNumberGenerator());
+ RandomNumberGenerator rng;
+ random_shuffle(objs.begin(), objs.end(), rng);
vector<pair<Ice::ObjectPrx, float> > objectsWithLoad;
objectsWithLoad.reserve(objs.size());
for(Ice::ObjectProxySeq::const_iterator p = objs.begin(); p != objs.end(); ++p)