aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/cpp/qps
diff options
context:
space:
mode:
authorGravatar Vijay Pai <vpai@google.com>2017-08-24 09:32:30 -0700
committerGravatar Vijay Pai <vpai@google.com>2017-08-29 08:44:54 -0700
commit6defb325d92458e30096140ef899e7e66fd0e433 (patch)
tree829fd66e58c89808600c245b66cf5b1a4bf173b6 /test/cpp/qps
parent12bc68ea71f976c8a8a2c30c037682cf98d87225 (diff)
Remove some pre-C++11-style workarounds
Diffstat (limited to 'test/cpp/qps')
-rw-r--r--test/cpp/qps/client.h28
-rw-r--r--test/cpp/qps/interarrival.h12
2 files changed, 15 insertions, 25 deletions
diff --git a/test/cpp/qps/client.h b/test/cpp/qps/client.h
index 0794a1569a..b1d90aa9c4 100644
--- a/test/cpp/qps/client.h
+++ b/test/cpp/qps/client.h
@@ -369,12 +369,11 @@ class ClientImpl : public Client {
ClientImpl(const ClientConfig& config,
std::function<std::unique_ptr<StubType>(std::shared_ptr<Channel>)>
create_stub)
- : cores_(gpr_cpu_num_cores()),
- channels_(config.client_channels()),
- create_stub_(create_stub) {
+ : cores_(gpr_cpu_num_cores()), create_stub_(create_stub) {
for (int i = 0; i < config.client_channels(); i++) {
- channels_[i].init(config.server_targets(i % config.server_targets_size()),
- config, create_stub_, i);
+ channels_.emplace_back(
+ config.server_targets(i % config.server_targets_size()), config,
+ create_stub_, i);
}
ClientRequestCreator<RequestType> create_req(&request_,
@@ -388,20 +387,11 @@ class ClientImpl : public Client {
class ClientChannelInfo {
public:
- ClientChannelInfo() {}
- ClientChannelInfo(const ClientChannelInfo& i) {
- // The copy constructor is to satisfy old compilers
- // that need it for using std::vector . It is only ever
- // used for empty entries
- GPR_ASSERT(!i.channel_ && !i.stub_);
- }
- void init(const grpc::string& target, const ClientConfig& config,
- std::function<std::unique_ptr<StubType>(std::shared_ptr<Channel>)>
- create_stub,
- int shard) {
- // We have to use a 2-phase init like this with a default
- // constructor followed by an initializer function to make
- // old compilers happy with using this in std::vector
+ ClientChannelInfo(
+ const grpc::string& target, const ClientConfig& config,
+ std::function<std::unique_ptr<StubType>(std::shared_ptr<Channel>)>
+ create_stub,
+ int shard) {
ChannelArguments args;
args.SetInt("shard_to_ensure_no_subchannel_merges", shard);
set_channel_args(config, &args);
diff --git a/test/cpp/qps/interarrival.h b/test/cpp/qps/interarrival.h
index c6e417985a..1fa310c209 100644
--- a/test/cpp/qps/interarrival.h
+++ b/test/cpp/qps/interarrival.h
@@ -21,7 +21,7 @@
#include <chrono>
#include <cmath>
-#include <cstdlib>
+#include <random>
#include <vector>
#include <grpc++/support/config.h>
@@ -75,13 +75,13 @@ class InterarrivalTimer {
public:
InterarrivalTimer() {}
void init(const RandomDistInterface& r, int threads, int entries = 1000000) {
+ std::random_device devrand;
+ std::mt19937_64 generator(devrand());
+ std::uniform_real_distribution<double> rando(0, 1);
for (int i = 0; i < entries; i++) {
- // rand is the only choice that is portable across POSIX and Windows
- // and that supports new and old compilers
- const double uniform_0_1 =
- static_cast<double>(rand()) / static_cast<double>(RAND_MAX);
random_table_.push_back(
- static_cast<int64_t>(1e9 * r.transform(uniform_0_1)));
+ static_cast<int64_t>(1e9 * r.transform(rando(generator))));
+ ;
}
// Now set up the thread positions
for (int i = 0; i < threads; i++) {