diff options
author | 2017-05-02 13:39:23 -0700 | |
---|---|---|
committer | 2017-05-02 13:39:23 -0700 | |
commit | 3b8f0ce97b2212942c5d0c32fb4f3c12541a6720 (patch) | |
tree | 9733791e09a5980de60f54612ddfc8173e94cdcb /src/core/ext/transport/cronet | |
parent | 6626a86923aaebae86aeeba151c99ed3089d02fc (diff) |
Fix a bug where OP_CANCEL is completed prematurely
Diffstat (limited to 'src/core/ext/transport/cronet')
-rw-r--r-- | src/core/ext/transport/cronet/transport/cronet_transport.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/core/ext/transport/cronet/transport/cronet_transport.c b/src/core/ext/transport/cronet/transport/cronet_transport.c index d4e89d6a6c..67974b0b6a 100644 --- a/src/core/ext/transport/cronet/transport/cronet_transport.c +++ b/src/core/ext/transport/cronet/transport/cronet_transport.c @@ -886,6 +886,10 @@ static bool op_can_be_run(grpc_transport_stream_op_batch *curr_op, !stream_state->state_op_done[OP_RECV_MESSAGE]) { CRONET_LOG(GPR_DEBUG, "Because"); result = false; + } else if (curr_op->cancel_stream && + !stream_state->state_callback_received[OP_CANCELED]) { + CRONET_LOG(GPR_DEBUG, "Because"); + result = false; } else if (curr_op->recv_trailing_metadata) { /* We aren't done with trailing metadata yet */ if (!stream_state->state_op_done[OP_RECV_TRAILING_METADATA]) { |