diff options
author | Anna Henningsen <anna@addaleax.net> | 2019-09-02 02:36:03 +0300 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2019-09-07 07:03:06 +0300 |
commit | 1cde519287b925a0be4485f3766fb5ceb60f94cd (patch) | |
tree | 6cb03bcb9e993749783612e1134bee4e0d6cb399 /src/node_http2.cc | |
parent | 7b350bb3d45483a4b242de37b87448c5b79143b9 (diff) |
http2: send out pending data earlier
If there’s a lot of data waiting on a given stream, send
it out early, if possible. This helps trigger the backpressure
mechanism introduced in 8a4a1931b8b98 at a better time.
PR-URL: https://github.com/nodejs/node/pull/29398
Reviewed-By: David Carlier <devnexen@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'src/node_http2.cc')
-rw-r--r-- | src/node_http2.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/node_http2.cc b/src/node_http2.cc index a5b834dc2c1..d09676d8583 100644 --- a/src/node_http2.cc +++ b/src/node_http2.cc @@ -1188,7 +1188,10 @@ int Http2Session::OnDataChunkReceived(nghttp2_session* handle, stream->inbound_consumed_data_while_paused_ += avail; // If we have a gathered a lot of data for output, try sending it now. - if (session->outgoing_length_ > 4096) session->SendPendingData(); + if (session->outgoing_length_ > 4096 || + stream->available_outbound_length_ > 4096) { + session->SendPendingData(); + } } while (len != 0); // If we are currently waiting for a write operation to finish, we should |