diff options
Diffstat (limited to 'src/mux_quic.c')
-rw-r--r-- | src/mux_quic.c | 14 |
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); |