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) {