diff options
Diffstat (limited to 'cpp/src/IceGrid/AdapterCache.cpp')
-rw-r--r-- | cpp/src/IceGrid/AdapterCache.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
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; |