diff options
author | 2018-06-08 08:37:23 -0700 | |
---|---|---|
committer | 2018-06-08 08:37:23 -0700 | |
commit | 8ae0ff0af2dc27ee82dd0e7174d4ad3112e6cf26 (patch) | |
tree | 2fb55b21217d62e3ed9b66c33bb88fc962526354 /src/core/lib/channel | |
parent | 8b5e45a35b83908d7a5f1dae6f412929f70c90ef (diff) |
Move recv_trailing_metadata into its own callback. Don't use
on_complete for recv_ops.
Diffstat (limited to 'src/core/lib/channel')
-rw-r--r-- | src/core/lib/channel/connected_channel.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/core/lib/channel/connected_channel.cc b/src/core/lib/channel/connected_channel.cc index ddd3029402..e2ea334ded 100644 --- a/src/core/lib/channel/connected_channel.cc +++ b/src/core/lib/channel/connected_channel.cc @@ -51,6 +51,7 @@ typedef struct connected_channel_call_data { callback_state on_complete[6]; // Max number of pending batches. callback_state recv_initial_metadata_ready; callback_state recv_message_ready; + callback_state recv_trailing_metadata_ready; } call_data; static void run_in_call_combiner(void* arg, grpc_error* error) { @@ -111,6 +112,12 @@ static void con_start_transport_stream_op_batch( intercept_callback(calld, state, false, "recv_message_ready", &batch->payload->recv_message.recv_message_ready); } + if (batch->recv_trailing_metadata) { + callback_state* state = &calld->recv_trailing_metadata_ready; + intercept_callback( + calld, state, false, "recv_trailing_metadata_ready", + &batch->payload->recv_trailing_metadata.recv_trailing_metadata_ready); + } if (batch->cancel_stream) { // There can be more than one cancellation batch in flight at any // given time, so we can't just pick out a fixed index into @@ -121,7 +128,7 @@ static void con_start_transport_stream_op_batch( static_cast<callback_state*>(gpr_malloc(sizeof(*state))); intercept_callback(calld, state, true, "on_complete (cancel_stream)", &batch->on_complete); - } else { + } else if (batch->on_complete != nullptr) { callback_state* state = get_state_for_batch(calld, batch); intercept_callback(calld, state, false, "on_complete", &batch->on_complete); } |