Revert "Properly integrate async API with server-side cancellations."
diff --git a/src/cpp/server/server_context.cc b/src/cpp/server/server_context.cc
index eb49b21..e205a19 100644
--- a/src/cpp/server/server_context.cc
+++ b/src/cpp/server/server_context.cc
@@ -62,11 +62,7 @@
void FillOps(grpc_op* ops, size_t* nops) GRPC_OVERRIDE;
bool FinalizeResult(void** tag, bool* status) GRPC_OVERRIDE;
- bool CheckCancelled(CompletionQueue* cq) {
- cq->TryPluck(this);
- return CheckCancelledNoPluck();
- }
- bool CheckCancelledAsync() { return CheckCancelledNoPluck(); }
+ bool CheckCancelled(CompletionQueue* cq);
void set_tag(void* tag) {
has_tag_ = true;
@@ -76,11 +72,6 @@
void Unref();
private:
- bool CheckCancelledNoPluck() {
- grpc::lock_guard<grpc::mutex> g(mu_);
- return finalized_ ? (cancelled_ != 0) : false;
- }
-
bool has_tag_;
void* tag_;
grpc::mutex mu_;
@@ -97,6 +88,12 @@
}
}
+bool ServerContext::CompletionOp::CheckCancelled(CompletionQueue* cq) {
+ cq->TryPluck(this);
+ grpc::lock_guard<grpc::mutex> g(mu_);
+ return finalized_ ? cancelled_ != 0 : false;
+}
+
void ServerContext::CompletionOp::FillOps(grpc_op* ops, size_t* nops) {
ops->op = GRPC_OP_RECV_CLOSE_ON_SERVER;
ops->data.recv_close_on_server.cancelled = &cancelled_;
@@ -185,14 +182,7 @@
}
bool ServerContext::IsCancelled() const {
- if (has_notify_when_done_tag_) {
- // when using async API, but the result is only valid
- // if the tag has already been delivered at the completion queue
- return completion_op_ && completion_op_->CheckCancelledAsync();
- } else {
- // when using sync API
- return completion_op_ && completion_op_->CheckCancelled(cq_);
- }
+ return completion_op_ && completion_op_->CheckCancelled(cq_);
}
void ServerContext::set_compression_level(grpc_compression_level level) {