]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: s/random_shuffle()/shuffle()/ 19872/head
authorKefu Chai <kchai@redhat.com>
Tue, 9 Jan 2018 14:54:34 +0000 (22:54 +0800)
committerKefu Chai <kchai@redhat.com>
Wed, 10 Jan 2018 07:08:41 +0000 (15:08 +0800)
random_shuffle() is deprecated in C++14, and is removed in C++17

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
Signed-off-by: Kefu Chai <kchai@redhat.com>
src/osd/ReplicatedBackend.cc
src/test/common/test_prioritized_queue.cc

index 2a05348eecca95ce472d45cc7b7a7a315817f657..45aa1563ce772273890983ff2f1080af7f6bdaf1 100644 (file)
@@ -20,6 +20,7 @@
 #include "messages/MOSDPGPull.h"
 #include "messages/MOSDPGPushReply.h"
 #include "common/EventTrace.h"
+#include "include/random.h"
 
 #define dout_context cct
 #define dout_subsys ceph_subsys_osd
@@ -1363,9 +1364,10 @@ void ReplicatedBackend::prepare_pull(
   assert(!q->second.empty());
 
   // pick a pullee
-  vector<pg_shard_t> shuffle(q->second.begin(), q->second.end());
-  random_shuffle(shuffle.begin(), shuffle.end());
-  vector<pg_shard_t>::iterator p = shuffle.begin();
+  auto p = q->second.begin();
+  std::advance(p,
+               util::generate_random_number<int>(0,
+                                                 q->second.size() - 1));
   assert(get_osdmap()->is_up(p->osd));
   pg_shard_t fromshard = *p;
 
index d3a550c57b3dbc09db7627caa66b874e61d5d4c8..83bd41f8cbd37a1d8fc77e072559844a349f791f 100644 (file)
@@ -7,6 +7,7 @@
 #include <numeric>
 #include <vector>
 #include <algorithm>
+#include <random>
 
 using std::vector;
 
@@ -23,7 +24,9 @@ protected:
     for (int i = 0; i < item_size; i++) {
       items.push_back(Item(i));
     }
-    std::random_shuffle(items.begin(), items.end());
+    std::random_device rd;
+    std::default_random_engine rng(rd());
+    std::shuffle(items.begin(), items.end(), rng);
   }
   void TearDown() override {
     items.clear();