summaryrefslogtreecommitdiff
path: root/src/ipc/engine_message.c
diff options
context:
space:
mode:
authorAargh Rai <aargh.rai+git@gmail.com>2026-07-24 09:32:54 +0530
committerAargh Rai <aargh.rai+git@gmail.com>2026-07-24 09:32:54 +0530
commit7d36403836511ab0745791ce98498cf5112633c1 (patch)
treebb1f998e3ce8fc99a8611dc64d578ca269c56b01 /src/ipc/engine_message.c
parente6cead853d66b4ea9ea8d9c6dba33e5a1720a99d (diff)
fixed the quit commandHEADmaster
Diffstat (limited to 'src/ipc/engine_message.c')
-rw-r--r--src/ipc/engine_message.c15
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);
}