|
const char * | grpc_chttp2_initiate_write_reason_string (grpc_chttp2_initiate_write_reason reason) |
|
void | grpc_chttp2_initiate_write (grpc_chttp2_transport *t, grpc_chttp2_initiate_write_reason reason) |
| Transport writing call flow: grpc_chttp2_initiate_write() is called anywhere that we know bytes need to go out on the wire. More...
|
|
grpc_chttp2_begin_write_result | grpc_chttp2_begin_write (grpc_chttp2_transport *t) |
|
void | grpc_chttp2_end_write (grpc_chttp2_transport *t, grpc_error_handle error) |
|
grpc_error_handle | grpc_chttp2_perform_read (grpc_chttp2_transport *t, const grpc_slice &slice) |
| Process one slice of incoming data; return 1 if the connection is still viable after reading, or 0 if the connection should be torn down. More...
|
|
bool | grpc_chttp2_list_add_writable_stream (grpc_chttp2_transport *t, grpc_chttp2_stream *s) |
|
bool | grpc_chttp2_list_pop_writable_stream (grpc_chttp2_transport *t, grpc_chttp2_stream **s) |
| Get a writable stream returns non-zero if there was a stream available. More...
|
|
bool | grpc_chttp2_list_remove_writable_stream (grpc_chttp2_transport *t, grpc_chttp2_stream *s) |
|
bool | grpc_chttp2_list_add_writing_stream (grpc_chttp2_transport *t, grpc_chttp2_stream *s) |
|
bool | grpc_chttp2_list_have_writing_streams (grpc_chttp2_transport *t) |
|
bool | grpc_chttp2_list_pop_writing_stream (grpc_chttp2_transport *t, grpc_chttp2_stream **s) |
|
void | grpc_chttp2_list_add_written_stream (grpc_chttp2_transport *t, grpc_chttp2_stream *s) |
|
bool | grpc_chttp2_list_pop_written_stream (grpc_chttp2_transport *t, grpc_chttp2_stream **s) |
|
void | grpc_chttp2_list_add_waiting_for_concurrency (grpc_chttp2_transport *t, grpc_chttp2_stream *s) |
|
bool | grpc_chttp2_list_pop_waiting_for_concurrency (grpc_chttp2_transport *t, grpc_chttp2_stream **s) |
|
void | grpc_chttp2_list_remove_waiting_for_concurrency (grpc_chttp2_transport *t, grpc_chttp2_stream *s) |
|
void | grpc_chttp2_list_add_stalled_by_transport (grpc_chttp2_transport *t, grpc_chttp2_stream *s) |
|
bool | grpc_chttp2_list_pop_stalled_by_transport (grpc_chttp2_transport *t, grpc_chttp2_stream **s) |
|
void | grpc_chttp2_list_remove_stalled_by_transport (grpc_chttp2_transport *t, grpc_chttp2_stream *s) |
|
void | grpc_chttp2_list_add_stalled_by_stream (grpc_chttp2_transport *t, grpc_chttp2_stream *s) |
|
bool | grpc_chttp2_list_pop_stalled_by_stream (grpc_chttp2_transport *t, grpc_chttp2_stream **s) |
|
bool | grpc_chttp2_list_remove_stalled_by_stream (grpc_chttp2_transport *t, grpc_chttp2_stream *s) |
|
void | grpc_chttp2_act_on_flowctl_action (const grpc_core::chttp2::FlowControlAction &action, grpc_chttp2_transport *t, grpc_chttp2_stream *s) |
|
grpc_chttp2_stream * | grpc_chttp2_parsing_lookup_stream (grpc_chttp2_transport *t, uint32_t id) |
|
grpc_chttp2_stream * | grpc_chttp2_parsing_accept_stream (grpc_chttp2_transport *t, uint32_t id) |
|
void | grpc_chttp2_add_incoming_goaway (grpc_chttp2_transport *t, uint32_t goaway_error, uint32_t last_stream_id, const grpc_slice &goaway_text) |
|
void | grpc_chttp2_parsing_become_skip_parser (grpc_chttp2_transport *t) |
|
void | grpc_chttp2_complete_closure_step (grpc_chttp2_transport *t, grpc_chttp2_stream *s, grpc_closure **pclosure, grpc_error_handle error, const char *desc) |
|
void | grpc_chttp2_fake_status (grpc_chttp2_transport *t, grpc_chttp2_stream *stream, grpc_error_handle error) |
|
void | grpc_chttp2_mark_stream_closed (grpc_chttp2_transport *t, grpc_chttp2_stream *s, int close_reads, int close_writes, grpc_error_handle error) |
|
void | grpc_chttp2_start_writing (grpc_chttp2_transport *t) |
|
void | grpc_chttp2_stream_ref (grpc_chttp2_stream *s, const char *reason) |
|
void | grpc_chttp2_stream_unref (grpc_chttp2_stream *s, const char *reason) |
|
void | grpc_chttp2_unref_transport (grpc_chttp2_transport *t, const char *reason, const char *file, int line) |
|
void | grpc_chttp2_ref_transport (grpc_chttp2_transport *t, const char *reason, const char *file, int line) |
|
void | grpc_chttp2_ack_ping (grpc_chttp2_transport *t, uint64_t id) |
|
void | grpc_chttp2_add_ping_strike (grpc_chttp2_transport *t) |
| Add a new ping strike to ping_recv_state.ping_strikes. More...
|
|
void | grpc_chttp2_reset_ping_clock (grpc_chttp2_transport *t) |
| Resets ping clock. More...
|
|
void | grpc_chttp2_mark_stream_writable (grpc_chttp2_transport *t, grpc_chttp2_stream *s) |
| add a ref to the stream and add it to the writable list; ref will be dropped in writing.c More...
|
|
void | grpc_chttp2_cancel_stream (grpc_chttp2_transport *t, grpc_chttp2_stream *s, grpc_error_handle due_to_error) |
|
void | grpc_chttp2_maybe_complete_recv_initial_metadata (grpc_chttp2_transport *t, grpc_chttp2_stream *s) |
|
void | grpc_chttp2_maybe_complete_recv_message (grpc_chttp2_transport *t, grpc_chttp2_stream *s) |
|
void | grpc_chttp2_maybe_complete_recv_trailing_metadata (grpc_chttp2_transport *t, grpc_chttp2_stream *s) |
|
void | grpc_chttp2_fail_pending_writes (grpc_chttp2_transport *t, grpc_chttp2_stream *s, grpc_error_handle error) |
|
void | grpc_chttp2_config_default_keepalive_args (grpc_channel_args *args, bool is_client) |
| Set the default keepalive configurations, must only be called at initialization. More...
|
|
void | grpc_chttp2_retry_initiate_ping (void *tp, grpc_error_handle error) |
|
void | schedule_bdp_ping_locked (grpc_chttp2_transport *t) |
|
Transport writing call flow: grpc_chttp2_initiate_write() is called anywhere that we know bytes need to go out on the wire.
If no other write has been started, a task is enqueued onto our workqueue. When that task executes, it obtains the global lock, and gathers the data to write. The global lock is dropped and we do the syscall to write. After writing, a follow-up check is made to see if another round of writing should be performed.
The actual call chain is documented in the implementation of this function.