diff options
author | Mikhail Burakov <mburakov@mailbox.org> | 2024-09-21 09:53:47 +0200 |
---|---|---|
committer | Mikhail Burakov <mburakov@mailbox.org> | 2024-09-21 09:53:47 +0200 |
commit | 2486ad6913fa3ad6488752a2c9414a239b18a936 (patch) | |
tree | 5729fa1df12e80674069a4fdcd97a11750adee38 /io_context.c | |
parent | 9fd565fc7ab950ac61f7ea7c0376936aa04aa2ea (diff) |
Fix queues destruction in io context
Diffstat (limited to 'io_context.c')
-rw-r--r-- | io_context.c | 6 |
1 files changed, 4 insertions, 2 deletions
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); |