|  | @@ -66,11 +66,11 @@ class SynchronousClient : public Client {
 | 
	
		
			
				|  |  |   public:
 | 
	
		
			
				|  |  |    SynchronousClient(const ClientConfig& config) : Client(config) {
 | 
	
		
			
				|  |  |      num_threads_ =
 | 
	
		
			
				|  |  | -      config.outstanding_rpcs_per_channel() * config.client_channels();
 | 
	
		
			
				|  |  | +        config.outstanding_rpcs_per_channel() * config.client_channels();
 | 
	
		
			
				|  |  |      responses_.resize(num_threads_);
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  virtual ~SynchronousClient() {};
 | 
	
		
			
				|  |  | +  virtual ~SynchronousClient(){};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |   protected:
 | 
	
		
			
				|  |  |    size_t num_threads_;
 | 
	
	
		
			
				|  | @@ -79,10 +79,12 @@ class SynchronousClient : public Client {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  class SynchronousUnaryClient GRPC_FINAL : public SynchronousClient {
 | 
	
		
			
				|  |  |   public:
 | 
	
		
			
				|  |  | -  SynchronousUnaryClient(const ClientConfig& config):
 | 
	
		
			
				|  |  | -    SynchronousClient(config) {StartThreads(num_threads_);}
 | 
	
		
			
				|  |  | -  ~SynchronousUnaryClient() {EndThreads();}
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  | +  SynchronousUnaryClient(const ClientConfig& config)
 | 
	
		
			
				|  |  | +      : SynchronousClient(config) {
 | 
	
		
			
				|  |  | +    StartThreads(num_threads_);
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  ~SynchronousUnaryClient() { EndThreads(); }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    bool ThreadFunc(Histogram* histogram, size_t thread_idx) GRPC_OVERRIDE {
 | 
	
		
			
				|  |  |      auto* stub = channels_[thread_idx % channels_.size()].get_stub();
 | 
	
		
			
				|  |  |      double start = Timer::Now();
 | 
	
	
		
			
				|  | @@ -96,9 +98,9 @@ class SynchronousUnaryClient GRPC_FINAL : public SynchronousClient {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  class SynchronousStreamingClient GRPC_FINAL : public SynchronousClient {
 | 
	
		
			
				|  |  |   public:
 | 
	
		
			
				|  |  | -  SynchronousStreamingClient(const ClientConfig& config):
 | 
	
		
			
				|  |  | -      SynchronousClient(config), context_(num_threads_) {
 | 
	
		
			
				|  |  | -    for (size_t thread_idx=0;thread_idx<num_threads_;thread_idx++){
 | 
	
		
			
				|  |  | +  SynchronousStreamingClient(const ClientConfig& config)
 | 
	
		
			
				|  |  | +      : SynchronousClient(config), context_(num_threads_) {
 | 
	
		
			
				|  |  | +    for (size_t thread_idx = 0; thread_idx < num_threads_; thread_idx++) {
 | 
	
		
			
				|  |  |        auto* stub = channels_[thread_idx % channels_.size()].get_stub();
 | 
	
		
			
				|  |  |        stream_ = stub->StreamingCall(&context_[thread_idx]);
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -121,18 +123,19 @@ class SynchronousStreamingClient GRPC_FINAL : public SynchronousClient {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      return false;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  private:
 | 
	
		
			
				|  |  | -    std::vector<grpc::ClientContext> context_;
 | 
	
		
			
				|  |  | -    std::unique_ptr<grpc::ClientReaderWriter<SimpleRequest,
 | 
	
		
			
				|  |  | -                                             SimpleResponse>> stream_;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | + private:
 | 
	
		
			
				|  |  | +  std::vector<grpc::ClientContext> context_;
 | 
	
		
			
				|  |  | +  std::unique_ptr<grpc::ClientReaderWriter<SimpleRequest, SimpleResponse>>
 | 
	
		
			
				|  |  | +      stream_;
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -std::unique_ptr<Client>
 | 
	
		
			
				|  |  | -CreateSynchronousUnaryClient(const ClientConfig& config) {
 | 
	
		
			
				|  |  | +std::unique_ptr<Client> CreateSynchronousUnaryClient(
 | 
	
		
			
				|  |  | +    const ClientConfig& config) {
 | 
	
		
			
				|  |  |    return std::unique_ptr<Client>(new SynchronousUnaryClient(config));
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -std::unique_ptr<Client>
 | 
	
		
			
				|  |  | -CreateSynchronousStreamingClient(const ClientConfig& config) {
 | 
	
		
			
				|  |  | +std::unique_ptr<Client> CreateSynchronousStreamingClient(
 | 
	
		
			
				|  |  | +    const ClientConfig& config) {
 | 
	
		
			
				|  |  |    return std::unique_ptr<Client>(new SynchronousStreamingClient(config));
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 |