aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/cpp/server
diff options
context:
space:
mode:
authorGravatar Yash Tibrewal <yashkt@google.com>2018-11-06 14:56:24 -0800
committerGravatar GitHub <noreply@github.com>2018-11-06 14:56:24 -0800
commit193b4b57ec8ec1509a91069f8cdd1ba1917b2d71 (patch)
tree6e346ecbad7f8b579c585b3619123ce17f5f9380 /src/cpp/server
parent385fde64fc2e3b0241229e4a018ea0989a2a00bc (diff)
parentded9434e4c23e6be69feeda9ca05b31bceb5e5f9 (diff)
Merge pull request #17072 from yashykt/interceptor_cancellation
Interceptors should see a Cancellation notification
Diffstat (limited to 'src/cpp/server')
-rw-r--r--src/cpp/server/server_context.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cpp/server/server_context.cc b/src/cpp/server/server_context.cc
index 19e6cfb0b4..396996e5bc 100644
--- a/src/cpp/server/server_context.cc
+++ b/src/cpp/server/server_context.cc
@@ -294,6 +294,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) {