diff options
| author | Aargh Rai <aargh.rai+git@gmail.com> | 2026-07-24 09:32:54 +0530 |
|---|---|---|
| committer | Aargh Rai <aargh.rai+git@gmail.com> | 2026-07-24 09:32:54 +0530 |
| commit | 7d36403836511ab0745791ce98498cf5112633c1 (patch) | |
| tree | bb1f998e3ce8fc99a8611dc64d578ca269c56b01 /src/ipc/engine_message.c | |
| parent | e6cead853d66b4ea9ea8d9c6dba33e5a1720a99d (diff) | |
Diffstat (limited to 'src/ipc/engine_message.c')
| -rw-r--r-- | src/ipc/engine_message.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/ipc/engine_message.c b/src/ipc/engine_message.c index 76814f4..c54a02e 100644 --- a/src/ipc/engine_message.c +++ b/src/ipc/engine_message.c @@ -16,6 +16,17 @@ void engine_message_handler_init(engine_message_handler_t *handle) { handle->popped_count = 0; } +void engine_message_handler_deinit(engine_message_handler_t *handle) { + engine_message_t *next, *message = handle->oldest_valid; + + int count = handle->count; + while (count-- > 0) { + next = message->next; + engine_message_deinit(message); + message = next; + } +} + void engine_message_handler_acquire(engine_message_handler_t *handle) { while (atomic_flag_test_and_set(&handler_busy)); } @@ -111,6 +122,10 @@ bool engine_message_is_ready(engine_message_t *message) { void engine_messages_deinit(engine_messages_t *messages) { assert(messages != NULL); + for (int i = 0; i < 10; i++) { + engine_message_handler_deinit(messages->data[i]); + free(messages->data[i]); + } free(messages->data); } |
