aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/transport
diff options
context:
space:
mode:
authorGravatar yang-g <yangg@google.com>2016-02-05 23:54:03 -0800
committerGravatar yang-g <yangg@google.com>2016-02-05 23:54:03 -0800
commit6494e8bf9567d045ab2fd1e76193178c50c8f515 (patch)
tree09b569c2d92bef4dcc8ff53ddf94c6c52e98f661 /src/core/transport
parent0789c49566f3a44084c1fcc867383cbd84252bb7 (diff)
flush the stalled list after the window is updated
Diffstat (limited to 'src/core/transport')
-rw-r--r--src/core/transport/chttp2/writing.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/core/transport/chttp2/writing.c b/src/core/transport/chttp2/writing.c
index 095883c66d..cafecf1046 100644
--- a/src/core/transport/chttp2/writing.c
+++ b/src/core/transport/chttp2/writing.c
@@ -75,6 +75,9 @@ int grpc_chttp2_unlocking_check_writes(
GRPC_CHTTP2_FLOW_MOVE_TRANSPORT("write", transport_writing, outgoing_window,
transport_global, outgoing_window);
+ bool is_window_available = transport_writing->outgoing_window > 0;
+ grpc_chttp2_list_flush_writing_stalled_by_transport(transport_writing,
+ is_window_available);
/* for each grpc_chttp2_stream that's become writable, frame it's data
(according to available window sizes) and add to the output buffer */
@@ -329,10 +332,6 @@ void grpc_chttp2_cleanup_writing(
grpc_chttp2_transport_writing *transport_writing) {
grpc_chttp2_stream_writing *stream_writing;
grpc_chttp2_stream_global *stream_global;
- bool is_window_available = transport_writing->outgoing_window > 0;
-
- grpc_chttp2_list_flush_writing_stalled_by_transport(transport_writing,
- is_window_available);
while (grpc_chttp2_list_pop_written_stream(
transport_global, transport_writing, &stream_global, &stream_writing)) {