diff --git a/src/core/surface/call.c b/src/core/surface/call.c index ad55ef6601cbded799238b9adba90a1d03488071..6e2714db0b0a9b8d3e10258d646e60d69d64a967 100644 --- a/src/core/surface/call.c +++ b/src/core/surface/call.c @@ -405,6 +405,8 @@ void grpc_call_internal_unref(grpc_call *c, int allow_immediate_deletion) { static void set_status_code(grpc_call *call, status_source source, gpr_uint32 status) { + if (call->status[source].is_set) return; + call->status[source].is_set = 1; call->status[source].code = status;