summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2019-09-02 01:36:03 +0200
committerRich Trott <rtrott@gmail.com>2019-09-06 21:03:06 -0700
commit1cde519287b925a0be4485f3766fb5ceb60f94cd (patch)
tree6cb03bcb9e993749783612e1134bee4e0d6cb399 /src
parent7b350bb3d45483a4b242de37b87448c5b79143b9 (diff)
downloadandroid-node-v8-1cde519287b925a0be4485f3766fb5ceb60f94cd.tar.gz
android-node-v8-1cde519287b925a0be4485f3766fb5ceb60f94cd.tar.bz2
android-node-v8-1cde519287b925a0be4485f3766fb5ceb60f94cd.zip
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')
-rw-r--r--src/node_http2.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/node_http2.cc b/src/node_http2.cc
index a5b834dc2c..d09676d858 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