summaryrefslogtreecommitdiffstats
path: root/src/mux_quic.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mux_quic.c')
-rw-r--r--src/mux_quic.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mux_quic.c b/src/mux_quic.c
index de87368..05c92fa 100644
--- a/src/mux_quic.c
+++ b/src/mux_quic.c
@@ -2398,13 +2398,6 @@ static void qcc_release(struct qcc *qcc)
qcc->task = NULL;
}
- tasklet_free(qcc->wait_event.tasklet);
- if (conn && qcc->wait_event.events) {
- conn->xprt->unsubscribe(conn, conn->xprt_ctx,
- qcc->wait_event.events,
- &qcc->wait_event);
- }
-
/* liberate remaining qcs instances */
node = eb64_first(&qcc->streams_by_id);
while (node) {
@@ -2413,6 +2406,13 @@ static void qcc_release(struct qcc *qcc)
qcs_free(qcs);
}
+ tasklet_free(qcc->wait_event.tasklet);
+ if (conn && qcc->wait_event.events) {
+ conn->xprt->unsubscribe(conn, conn->xprt_ctx,
+ qcc->wait_event.events,
+ &qcc->wait_event);
+ }
+
while (!LIST_ISEMPTY(&qcc->lfctl.frms)) {
struct quic_frame *frm = LIST_ELEM(qcc->lfctl.frms.n, struct quic_frame *, list);
qc_frm_free(qcc->conn->handle.qc, &frm);