]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MEDIUM: h2: process streams pending for sending
authorWilly Tarreau <w@1wt.eu>
Tue, 17 Oct 2017 08:57:04 +0000 (10:57 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 31 Oct 2017 17:16:18 +0000 (18:16 +0100)
commitbacdf5a49b9c9a5d1215556c8dd8e68cca86d6e4
tree1d1dd0234765ac02e9f98dac2c0c6284f9a0cc3f
parentd7739c8820be1d7a89498f6d01cd652f7548b583
MEDIUM: h2: process streams pending for sending

The send() callback calls h2_process_mux() which iterates over the list
of flow controlled streams first, then streams waiting for room in the
send_list. If a stream from the send_list ends up being flow controlled,
it is then moved to the fctl_list. This way we can maintain the most
accurate fairness by ensuring that flows are always processed in order
of arrival except when they're blocked by flow control, in which case
only the other ones may pass in front of them.

It's a bit tricky as we want to remove a stream from the active lists
if it doesn't block (ie it has no reason for staying there).
src/mux_h2.c