diff --git a/src/core/surface/completion_queue.c b/src/core/surface/completion_queue.c index 2f1d81ee84776b4035686834fbee360bddb57750..060a8ff54a8b3ec649d702903f544f3100e7db1e 100644 --- a/src/core/surface/completion_queue.c +++ b/src/core/surface/completion_queue.c @@ -163,6 +163,7 @@ void grpc_cq_end_op(grpc_completion_queue *cc, void *tag, grpc_call *call, ev->base.success = success; end_op_locked(cc, GRPC_OP_COMPLETE); gpr_mu_unlock(GRPC_POLLSET_MU(&cc->pollset)); + if (call) GRPC_CALL_INTERNAL_UNREF(call, "cq", 0); } /* Create a GRPC_QUEUE_SHUTDOWN event without queuing it anywhere */