5b59e46e2b
We now use priority queue per stream, which contains the stream which has ready to send a frame, or one of its descendants have a frame to send. We maintain invariant that if a stream is queued, then its ancestors are also queued (except for root). When we re-schedule stream after transmission, we re-schedule all ancestors, so that streams on the other path can get a chance to send. This is basically the same mechanism h2o project uses, but there are differences in the details. |
||
---|---|---|
.. | ||
testdata | ||
.gitignore | ||
Makefile.am | ||
end_to_end.py | ||
failmalloc.c | ||
failmalloc_test.c | ||
failmalloc_test.h | ||
main.c | ||
malloc_wrapper.c | ||
malloc_wrapper.h | ||
nghttp2_buf_test.c | ||
nghttp2_buf_test.h | ||
nghttp2_frame_test.c | ||
nghttp2_frame_test.h | ||
nghttp2_hd_test.c | ||
nghttp2_hd_test.h | ||
nghttp2_helper_test.c | ||
nghttp2_helper_test.h | ||
nghttp2_map_test.c | ||
nghttp2_map_test.h | ||
nghttp2_npn_test.c | ||
nghttp2_npn_test.h | ||
nghttp2_pq_test.c | ||
nghttp2_pq_test.h | ||
nghttp2_queue_test.c | ||
nghttp2_queue_test.h | ||
nghttp2_session_test.c | ||
nghttp2_session_test.h | ||
nghttp2_stream_test.c | ||
nghttp2_stream_test.h | ||
nghttp2_test_helper.c | ||
nghttp2_test_helper.h |