Expose extensibility point for flow control

pull/10935/head
Craig Tiller 8 years ago
parent ff54f5b150
commit 0f4168aa36
  1. 8
      src/core/ext/transport/chttp2/transport/writing.c

@ -160,6 +160,7 @@ static bool stream_ref_if_not_destroyed(gpr_refcount *r) {
return true;
}
/* How many bytes of incoming flow control would we like to advertise */
uint32_t grpc_chttp2_target_incoming_window(grpc_chttp2_transport *t) {
return (uint32_t)GPR_MIN(
(int64_t)((1u << 31) - 1),
@ -168,6 +169,11 @@ uint32_t grpc_chttp2_target_incoming_window(grpc_chttp2_transport *t) {
[GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE]);
}
/* How many bytes would we like to put on the wire during a single syscall */
static uint32_t target_write_size(grpc_chttp2_transport *t) {
return 1024 * 1024;
}
grpc_chttp2_begin_write_result grpc_chttp2_begin_write(
grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t) {
grpc_chttp2_stream *s;
@ -208,7 +214,7 @@ grpc_chttp2_begin_write_result grpc_chttp2_begin_write(
/* for each grpc_chttp2_stream that's become writable, frame it's data
(according to available window sizes) and add to the output buffer */
while (true) {
if (t->outbuf.length > 1024 * 1024) {
if (t->outbuf.length > target_write_size(t)) {
partial_write = true;
break;
}

Loading…
Cancel
Save