diff --git a/src/core/channel/client_channel.c b/src/core/channel/client_channel.c index c2c23f515646806fb71dd6b45cfa1ac116a122a7..8e8f95fdb357d3a8235c2adbc3321b81bd49d7cb 100644 --- a/src/core/channel/client_channel.c +++ b/src/core/channel/client_channel.c @@ -244,6 +244,7 @@ static void cancel_rpc(grpc_call_element *elem, grpc_call_op *op) { return; /* early out */ case CALL_WAITING: remove_waiting_child(chand, calld); + calld->state = CALL_CANCELLED; gpr_mu_unlock(&chand->mu); send_up_cancelled_ops(elem); calld->s.waiting.on_complete(calld->s.waiting.on_complete_user_data,