|  | @@ -50,23 +50,6 @@ const int kNumRpcs = 1000;  // Number of RPCs per thread
 | 
	
		
			
				|  |  |  namespace grpc {
 | 
	
		
			
				|  |  |  namespace testing {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -namespace {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// When echo_deadline is requested, deadline seen in the ServerContext is set in
 | 
	
		
			
				|  |  | -// the response in seconds.
 | 
	
		
			
				|  |  | -void MaybeEchoDeadline(ServerContext* context, const EchoRequest* request,
 | 
	
		
			
				|  |  | -                       EchoResponse* response) {
 | 
	
		
			
				|  |  | -  if (request->has_param() && request->param().echo_deadline()) {
 | 
	
		
			
				|  |  | -    gpr_timespec deadline = gpr_inf_future(GPR_CLOCK_REALTIME);
 | 
	
		
			
				|  |  | -    if (context->deadline() != system_clock::time_point::max()) {
 | 
	
		
			
				|  |  | -      Timepoint2Timespec(context->deadline(), &deadline);
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -    response->mutable_param()->set_request_deadline(deadline.tv_sec);
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -}  // namespace
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  class TestServiceImpl : public ::grpc::testing::EchoTestService::Service {
 | 
	
		
			
				|  |  |   public:
 | 
	
		
			
				|  |  |    TestServiceImpl() : signal_client_(false) {}
 | 
	
	
		
			
				|  | @@ -74,29 +57,6 @@ class TestServiceImpl : public ::grpc::testing::EchoTestService::Service {
 | 
	
		
			
				|  |  |    Status Echo(ServerContext* context, const EchoRequest* request,
 | 
	
		
			
				|  |  |                EchoResponse* response) override {
 | 
	
		
			
				|  |  |      response->set_message(request->message());
 | 
	
		
			
				|  |  | -    MaybeEchoDeadline(context, request, response);
 | 
	
		
			
				|  |  | -    if (request->has_param() && request->param().client_cancel_after_us()) {
 | 
	
		
			
				|  |  | -      {
 | 
	
		
			
				|  |  | -        std::unique_lock<std::mutex> lock(mu_);
 | 
	
		
			
				|  |  | -        signal_client_ = true;
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      while (!context->IsCancelled()) {
 | 
	
		
			
				|  |  | -        gpr_sleep_until(gpr_time_add(
 | 
	
		
			
				|  |  | -            gpr_now(GPR_CLOCK_REALTIME),
 | 
	
		
			
				|  |  | -            gpr_time_from_micros(request->param().client_cancel_after_us(),
 | 
	
		
			
				|  |  | -                                 GPR_TIMESPAN)));
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      return Status::CANCELLED;
 | 
	
		
			
				|  |  | -    } else if (request->has_param() &&
 | 
	
		
			
				|  |  | -               request->param().server_cancel_after_us()) {
 | 
	
		
			
				|  |  | -      gpr_sleep_until(gpr_time_add(
 | 
	
		
			
				|  |  | -          gpr_now(GPR_CLOCK_REALTIME),
 | 
	
		
			
				|  |  | -          gpr_time_from_micros(request->param().server_cancel_after_us(),
 | 
	
		
			
				|  |  | -                               GPR_TIMESPAN)));
 | 
	
		
			
				|  |  | -      return Status::CANCELLED;
 | 
	
		
			
				|  |  | -    } else {
 | 
	
		
			
				|  |  | -      EXPECT_FALSE(context->IsCancelled());
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  |      return Status::OK;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 |