From 2486ad6913fa3ad6488752a2c9414a239b18a936 Mon Sep 17 00:00:00 2001 From: Mikhail Burakov Date: Sat, 21 Sep 2024 09:53:47 +0200 Subject: Fix queues destruction in io context --- io_context.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'io_context.c') diff --git a/io_context.c b/io_context.c index 38a7d13..8b9aa7c 100644 --- a/io_context.c +++ b/io_context.c @@ -295,9 +295,11 @@ void IoContextDestroy(struct IoContext* io_context) { assert(thrd_join(io_context->thread, NULL) == thrd_success); cnd_destroy(&io_context->cond); mtx_destroy(&io_context->mutex); - for (void* item; QueuePop(&io_context->prio, &item); free(item)); + for (void* item; QueuePop(&io_context->prio, &item);) + ((struct Proto*)item)->Destroy(item); QueueDestroy(&io_context->prio); - for (void* item; QueuePop(&io_context->queue, &item); free(item)); + for (void* item; QueuePop(&io_context->queue, &item);) + ((struct Proto*)item)->Destroy(item); QueueDestroy(&io_context->queue); assert(!close(io_context->fd)); free(io_context); -- cgit v1.2.3