mirror of https://github.com/grpc/grpc.git
When we set the call state to "CANCELLED" after grpc_cancel_all_calls, we would block other start batch operations from happening. The rpc_state for the cancelled call would still be in the server's rpc_states set, but it would never get removed because there were no active batches for the call, and the only place we remove from rpc_states is when a batch completes. It is better to rely on c-core's cancellation. Once a call is cancelled, all subsequent ops on that call will return immediately with a cancellation error. The RLock() change is due to the possibility that _on_call_completed gets invoked immediately when the call has already completed when the rpc_future callback is created.pull/13786/head
parent
04fb1c0b31
commit
8179b9523a
1 changed files with 1 additions and 11 deletions
Loading…
Reference in new issue