From: Kefu Chai Date: Tue, 9 Jan 2018 14:54:34 +0000 (+0800) Subject: osd: s/random_shuffle()/shuffle()/ X-Git-Tag: v13.0.2~543^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F19872%2Fhead;p=ceph.git osd: s/random_shuffle()/shuffle()/ random_shuffle() is deprecated in C++14, and is removed in C++17 Signed-off-by: Greg Farnum Signed-off-by: Willem Jan Withagen Signed-off-by: Kefu Chai --- diff --git a/src/osd/ReplicatedBackend.cc b/src/osd/ReplicatedBackend.cc index 2a05348eecc..45aa1563ce7 100644 --- a/src/osd/ReplicatedBackend.cc +++ b/src/osd/ReplicatedBackend.cc @@ -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 shuffle(q->second.begin(), q->second.end()); - random_shuffle(shuffle.begin(), shuffle.end()); - vector::iterator p = shuffle.begin(); + auto p = q->second.begin(); + std::advance(p, + util::generate_random_number(0, + q->second.size() - 1)); assert(get_osdmap()->is_up(p->osd)); pg_shard_t fromshard = *p; diff --git a/src/test/common/test_prioritized_queue.cc b/src/test/common/test_prioritized_queue.cc index d3a550c57b3..83bd41f8cbd 100644 --- a/src/test/common/test_prioritized_queue.cc +++ b/src/test/common/test_prioritized_queue.cc @@ -7,6 +7,7 @@ #include #include #include +#include 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();