Fix timer issues
diff --git a/test/cpp/qps/client.h b/test/cpp/qps/client.h
index 2b227ec..dd37b88 100644
--- a/test/cpp/qps/client.h
+++ b/test/cpp/qps/client.h
@@ -45,6 +45,9 @@
namespace grpc {
namespace testing {
+typedef std::chrono::system_clock grpc_time_source;
+typedef std::chrono::time_point<grpc_time_source> grpc_time;
+
class Client {
public:
explicit Client(const ClientConfig& config) : timer_(new Timer),
@@ -145,19 +148,18 @@
interarrival_timer_.init(*random_dist, num_threads);
for (size_t i = 0; i<num_threads; i++) {
- next_time_.push_back(std::chrono::high_resolution_clock::now()
- + interarrival_timer_(i));
+ next_time_.push_back(grpc_time_source::now() +
+ std::chrono::duration_cast<grpc_time_source::duration>(interarrival_timer_(i)));
}
}
}
- template<class Timepoint>
- bool NextIssueTime(int thread_idx, Timepoint *time_delay) {
+ bool NextIssueTime(int thread_idx, grpc_time *time_delay) {
if (closed_loop_) {
return false;
}
else {
*time_delay = next_time_[thread_idx];
- next_time_[thread_idx] += interarrival_timer_(thread_idx);
+ next_time_[thread_idx] += std::chrono::duration_cast<grpc_time_source::duration>(interarrival_timer_(thread_idx));
return true;
}
}
@@ -226,8 +228,7 @@
std::unique_ptr<Timer> timer_;
InterarrivalTimer interarrival_timer_;
- std::vector<std::chrono::time_point
- <std::chrono::high_resolution_clock>> next_time_;
+ std::vector<grpc_time> next_time_;
};
std::unique_ptr<Client> CreateSynchronousUnaryClient(const ClientConfig& args);