Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2019-09-02 02:36:03 +0300
committerRich Trott <rtrott@gmail.com>2019-09-07 07:03:06 +0300
commit1cde519287b925a0be4485f3766fb5ceb60f94cd (patch)
tree6cb03bcb9e993749783612e1134bee4e0d6cb399 /src/node_http2.cc
parent7b350bb3d45483a4b242de37b87448c5b79143b9 (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.cc5
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