aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/cpp/server/server_context.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpp/server/server_context.cc')
-rw-r--r--src/cpp/server/server_context.cc8
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));
}