mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-01-16 06:11:00 +01:00
Implement a mechanism to register streams ready to send data in new STREAM frames. Internally, this is implemented with a new list <qcc.send_list> which contains qcs instances. A qcs can be registered safely using the new function qcc_send_stream(). This is done automatically in qc_send_buf() which covers most cases. Also, application layer is free to use it for internal usage streams. This is currently the case for H3 control stream with SETTINGS sending. The main point of this patch is to handle stream sending fairly. This is in stark contrast with previous code where streams with lower ID were always prioritized. This could cause other streams to be indefinitely blocked behind a stream which has a lot of data to transfer. Now, streams are handled in an order scheduled by se_desc layer. This commit is the first one of a serie which will bring other improvments which also relied on the send_list implementation. This must be backported up to 2.7 when deemed sufficiently stable.