diff options
author | yang-g <yangg@google.com> | 2016-02-05 23:54:03 -0800 |
---|---|---|
committer | yang-g <yangg@google.com> | 2016-02-05 23:54:03 -0800 |
commit | 6494e8bf9567d045ab2fd1e76193178c50c8f515 (patch) | |
tree | 09b569c2d92bef4dcc8ff53ddf94c6c52e98f661 /src/core | |
parent | 0789c49566f3a44084c1fcc867383cbd84252bb7 (diff) |
flush the stalled list after the window is updated
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/transport/chttp2/writing.c | 7 |
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)) { |