diff --git a/src/core/surface/call.c b/src/core/surface/call.c index b2033f3dc0ea202b2621b6b14c5a70c9a57aace9..cfce943794072f8ffa04e9af4880a1f8ebe856f8 100644 --- a/src/core/surface/call.c +++ b/src/core/surface/call.c @@ -375,6 +375,7 @@ static void unlock(grpc_call *call) { sizeof(completed_requests)); call->num_completed_requests = 0; call->completing = 1; + grpc_call_internal_ref(call); } if (!call->sending) { @@ -403,6 +404,7 @@ static void unlock(grpc_call *call) { lock(call); call->completing = 0; unlock(call); + grpc_call_internal_unref(call, 0); } }