MINOR: quic: do not proceed to accept for closing conn
Each quic_conn is inserted in an accept queue to allocate the upper
layers. This is done through a listener tasklet in
quic_sock_accept_conn().
This patch interrupts the accept process for a quic_conn in
closing/draining state. Indeed, this connection will soon be closed so
it's unnecessary to allocate a complete stack for it.
This patch will become necessary when thread migration is implemented.
Indeed, it won't be allowed to proceed to thread migration for a closing
quic_conn.
This should be backported up to 2.7 after a period of observation.
diff --git a/src/quic_sock.c b/src/quic_sock.c
index 2ecc96b..ac83b98 100644
--- a/src/quic_sock.c
+++ b/src/quic_sock.c
@@ -150,7 +150,7 @@
struct li_per_thread *lthr = &l->per_thr[tid];
qc = MT_LIST_POP(<hr->quic_accept.conns, struct quic_conn *, accept_list);
- if (!qc)
+ if (!qc || qc->flags & (QUIC_FL_CONN_CLOSING|QUIC_FL_CONN_DRAINING))
goto done;
if (!new_quic_cli_conn(qc, l, &qc->peer_addr))