nghttp2/lib
Tatsuhiro Tsujikawa a11fbf6e2f Optimize connection level remote flow control
Previously when connection level remote flow control window gets 0, we
mark the stream having DATA frame with
NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL.  When connection level
WINDOW_UPDATE is received, we checks all existing streams, including
closed ones, and call nghttp2_stream_resume_deferred_data().  The
profiler shows this is expensive.

Now we prepare dedicated priority queue for DATA frames.  And we don't
mark stream with NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL when DATA
cannot be sent solely due to connection level flow control.  Instead,
we just queue DATA item to queue.  We won't pop DATA item from queue
when connection level remote window size is 0.  This way, we avoid the
expensive operation for all streams when WINDOW_UPDATE is arrived.
2014-09-26 00:01:51 +09:00
..
includes Add nghttp2_option_set_recv_client_preface() 2014-09-13 19:50:44 +09:00
Makefile.am Hide nghttp2_session_callbacks details and provide setter like functions 2014-08-25 21:24:04 +09:00
Makefile.msvc Move Makefile.msvc under lib 2014-09-24 00:44:45 +09:00
libnghttp2.pc.in libnghttp2: Remove dependency to zlib 2014-05-06 23:10:50 +09:00
nghttp2_buf.c Add nghttp2_bufs_realloc 2014-08-24 15:34:55 +09:00
nghttp2_buf.h Add nghttp2_bufs_realloc 2014-08-24 15:34:55 +09:00
nghttp2_callbacks.c Add nghttp2_on_begin_frame_callback 2014-08-25 21:26:50 +09:00
nghttp2_callbacks.h Add nghttp2_on_begin_frame_callback 2014-08-25 21:26:50 +09:00
nghttp2_frame.c Add reserved bits to header and frames 2014-08-28 23:30:42 +09:00
nghttp2_frame.h Add reserved bits to header and frames 2014-08-28 23:30:42 +09:00
nghttp2_hd.c nghtp2_hd: Calculate hash values once 2014-08-06 22:00:12 +09:00
nghttp2_hd.h nghtp2_hd: Calculate hash values once 2014-08-06 22:00:12 +09:00
nghttp2_hd_huffman.c Fix some other shorten-64-to-32 casting error found by MSVC (64bits) 2014-06-16 19:17:49 +02:00
nghttp2_hd_huffman.h Fix nghttp2_hd_huffman.h:41:31: warning: comma at end of enumerator list [-Wpedantic] 2014-06-11 23:43:10 +09:00
nghttp2_hd_huffman_data.c Update huffman code table 2014-06-16 23:03:55 +09:00
nghttp2_helper.c Add missing NGHTTP2_ERR_BAD_PREFACE to nghttp2_strerror 2014-09-17 23:25:47 +09:00
nghttp2_helper.h Fix typo 2014-05-06 17:05:47 +02:00
nghttp2_int.h Merge branch 'misc' of https://github.com/alagoutte/nghttp2 into alagoutte-misc 2014-05-26 21:48:30 +09:00
nghttp2_map.c Fix compile error with -Wshorten-64-to-32 2014-06-11 23:37:16 +09:00
nghttp2_map.h Replace HTTP/2.0 with HTTP/2 2014-03-30 19:26:37 +09:00
nghttp2_net.h Replace HTTP/2.0 with HTTP/2 2014-03-30 19:26:37 +09:00
nghttp2_npn.c Check protocol length so that scanner don't overrun buffer 2014-04-22 23:20:33 +09:00
nghttp2_npn.h Replace HTTP/2.0 with HTTP/2 2014-03-30 19:26:37 +09:00
nghttp2_option.c Add nghttp2_option_set_recv_client_preface() 2014-09-13 19:50:44 +09:00
nghttp2_option.h Add nghttp2_option_set_recv_client_preface() 2014-09-13 19:50:44 +09:00
nghttp2_outbound_item.c Separate extension frames from core frames 2014-06-09 23:16:54 +09:00
nghttp2_outbound_item.h Interleave stream DATA more naturally 2014-05-08 23:07:29 +09:00
nghttp2_pq.c Replace HTTP/2.0 with HTTP/2 2014-03-30 19:26:37 +09:00
nghttp2_pq.h Replace HTTP/2.0 with HTTP/2 2014-03-30 19:26:37 +09:00
nghttp2_priority_spec.c Allow exclusive dependency to stream 0 2014-04-17 21:18:18 +09:00
nghttp2_priority_spec.h Replace HTTP/2.0 with HTTP/2 2014-03-30 19:26:37 +09:00
nghttp2_queue.c Replace HTTP/2.0 with HTTP/2 2014-03-30 19:26:37 +09:00
nghttp2_queue.h Replace HTTP/2.0 with HTTP/2 2014-03-30 19:26:37 +09:00
nghttp2_session.c Optimize connection level remote flow control 2014-09-26 00:01:51 +09:00
nghttp2_session.h Optimize connection level remote flow control 2014-09-26 00:01:51 +09:00
nghttp2_stream.c Fix memory leak around stream->data_item 2014-09-17 23:16:00 +09:00
nghttp2_stream.h Add nghttp2_session_consume() API 2014-07-31 23:05:53 +09:00
nghttp2_submit.c Use uint32_t for HTTP/2 error_code 2014-08-25 21:24:04 +09:00
nghttp2_submit.h Replace HTTP/2.0 with HTTP/2 2014-03-30 19:26:37 +09:00
nghttp2_version.c Replace HTTP/2.0 with HTTP/2 2014-03-30 19:26:37 +09:00