aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib
diff options
context:
space:
mode:
authorGravatar Vijay Pai <vpai@google.com>2018-08-21 14:32:13 -0700
committerGravatar Vijay Pai <vpai@google.com>2018-08-30 15:46:27 -0700
commit8bf52535d1008a3f38e70d1387846f0e942761b5 (patch)
tree4d162e97b5917cdd9373f55a02b34284e4354e55 /src/core/lib
parentd766b9a2a40fd3002d9b93c97525a868c9d92dc4 (diff)
Provide a generic client-side unary callback API
Diffstat (limited to 'src/core/lib')
-rw-r--r--src/core/lib/surface/completion_queue.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/core/lib/surface/completion_queue.cc b/src/core/lib/surface/completion_queue.cc
index 0769d9e4f6..c2cf450e94 100644
--- a/src/core/lib/surface/completion_queue.cc
+++ b/src/core/lib/surface/completion_queue.cc
@@ -1364,9 +1364,11 @@ static void cq_shutdown_callback(grpc_completion_queue* cq) {
}
cqd->shutdown_called = true;
if (gpr_atm_full_fetch_add(&cqd->pending_events, -1) == 1) {
+ gpr_mu_unlock(cq->mu);
cq_finish_shutdown_callback(cq);
+ } else {
+ gpr_mu_unlock(cq->mu);
}
- gpr_mu_unlock(cq->mu);
GRPC_CQ_INTERNAL_UNREF(cq, "shutting_down (callback cq)");
}