summaryrefslogtreecommitdiffstats
path: root/src/quic_stream.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 05:11:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 05:11:10 +0000
commitcff6d757e3ba609c08ef2aaa00f07e53551e5bf6 (patch)
tree08c4fc3255483ad397d712edb4214ded49149fd9 /src/quic_stream.c
parentAdding upstream version 2.9.7. (diff)
downloadhaproxy-cff6d757e3ba609c08ef2aaa00f07e53551e5bf6.tar.xz
haproxy-cff6d757e3ba609c08ef2aaa00f07e53551e5bf6.zip
Adding upstream version 3.0.0.upstream/3.0.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/quic_stream.c')
-rw-r--r--src/quic_stream.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/quic_stream.c b/src/quic_stream.c
index a4b984d..e153660 100644
--- a/src/quic_stream.c
+++ b/src/quic_stream.c
@@ -6,7 +6,7 @@
#include <haproxy/buf.h>
#include <haproxy/dynbuf.h>
#include <haproxy/list.h>
-#include <haproxy/mux_quic-t.h>
+#include <haproxy/mux_quic.h>
#include <haproxy/pool.h>
#include <haproxy/quic_conn.h>
#include <haproxy/task.h>
@@ -37,10 +37,13 @@ static void qc_stream_buf_free(struct qc_stream_desc *stream,
/* notify MUX about available buffers. */
--qc->stream_buf_count;
if (qc->mux_state == QC_MUX_READY) {
- if (qc->qcc->flags & QC_CF_CONN_FULL) {
- qc->qcc->flags &= ~QC_CF_CONN_FULL;
- tasklet_wakeup(qc->qcc->wait_event.tasklet);
- }
+ /* notify MUX about available buffers.
+ *
+ * TODO several streams may be woken up even if a single buffer
+ * is available for now.
+ */
+ while (qcc_notify_buf(qc->qcc))
+ ;
}
}
@@ -202,11 +205,13 @@ void qc_stream_desc_free(struct qc_stream_desc *stream, int closing)
qc->stream_buf_count -= free_count;
if (qc->mux_state == QC_MUX_READY) {
- /* notify MUX about available buffers. */
- if (qc->qcc->flags & QC_CF_CONN_FULL) {
- qc->qcc->flags &= ~QC_CF_CONN_FULL;
- tasklet_wakeup(qc->qcc->wait_event.tasklet);
- }
+ /* notify MUX about available buffers.
+ *
+ * TODO several streams may be woken up even if a single buffer
+ * is available for now.
+ */
+ while (qcc_notify_buf(qc->qcc))
+ ;
}
}