diff options
author | Yash Tibrewal <yashkt@google.com> | 2018-11-01 11:58:46 -0700 |
---|---|---|
committer | Yash Tibrewal <yashkt@google.com> | 2018-11-01 11:58:46 -0700 |
commit | fd88dcaf5537839a30e4f958a01c311f3e876c26 (patch) | |
tree | bbfd170423a62acdc75362a5b0242c434bbc570d /src | |
parent | 3ece34d45c2b6e0d98d9546b1367054c90a523a6 (diff) |
Add cancellation notification
Diffstat (limited to 'src')
-rw-r--r-- | src/cpp/client/client_context.cc | 7 | ||||
-rw-r--r-- | src/cpp/server/server_context.cc | 6 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/cpp/client/client_context.cc b/src/cpp/client/client_context.cc index 8cdcddca87..d5eb029a24 100644 --- a/src/cpp/client/client_context.cc +++ b/src/cpp/client/client_context.cc @@ -111,9 +111,10 @@ void ClientContext::set_compression_algorithm( void ClientContext::TryCancel() { std::unique_lock<std::mutex> lock(mu_); if (call_) { - // for(size_t i = 0; i < rpc_info_.interceptors_.size(); i++) { - // rpc_info_.RunInterceptor(, 0); - //} + internal::CancelInterceptorBatchMethods cancel_methods; + for (size_t i = 0; i < rpc_info_.interceptors_.size(); i++) { + rpc_info_.RunInterceptor(&cancel_methods, i); + } grpc_call_cancel(call_, nullptr); } else { call_canceled_ = true; diff --git a/src/cpp/server/server_context.cc b/src/cpp/server/server_context.cc index 995e787785..e61fec9966 100644 --- a/src/cpp/server/server_context.cc +++ b/src/cpp/server/server_context.cc @@ -275,6 +275,12 @@ void ServerContext::AddTrailingMetadata(const grpc::string& key, } void ServerContext::TryCancel() const { + internal::CancelInterceptorBatchMethods cancel_methods; + if (rpc_info_) { + for (size_t i = 0; i < rpc_info_->interceptors_.size(); i++) { + rpc_info_->RunInterceptor(&cancel_methods, i); + } + } grpc_call_error err = grpc_call_cancel_with_status( call_, GRPC_STATUS_CANCELLED, "Cancelled on the server side", nullptr); if (err != GRPC_CALL_OK) { |