diff options
Diffstat (limited to 'src/cpp/server/server_context.cc')
-rw-r--r-- | src/cpp/server/server_context.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/cpp/server/server_context.cc b/src/cpp/server/server_context.cc index a68af4dc43..03507bb647 100644 --- a/src/cpp/server/server_context.cc +++ b/src/cpp/server/server_context.cc @@ -45,7 +45,8 @@ class ServerContext::CompletionOp final : public internal::CallOpSetInterface { tag_(nullptr), refs_(2), finalized_(false), - cancelled_(0) {} + cancelled_(0), + done_intercepting_(false) {} void FillOps(internal::Call* call) override; bool FinalizeResult(void** tag, bool* status) override; @@ -89,6 +90,9 @@ class ServerContext::CompletionOp final : public internal::CallOpSetInterface { int refs_; bool finalized_; int cancelled_; + bool done_intercepting_; + internal::Call call_; + internal::InterceptorBatchMethodsImpl interceptor_methods_; }; void ServerContext::CompletionOp::Unref() { @@ -105,6 +109,8 @@ void ServerContext::CompletionOp::FillOps(internal::Call* call) { ops.data.recv_close_on_server.cancelled = &cancelled_; ops.flags = 0; ops.reserved = nullptr; + call_ = *call; + interceptor_methods_.SetCall(&call_); GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call->call(), &ops, 1, this, nullptr)); } |