summaryrefslogtreecommitdiff
path: root/src/engine/threads.c
diff options
context:
space:
mode:
authorAargh Rai <aargh.rai+git@gmail.com>2026-08-15 13:55:35 +0530
committerAargh Rai <aargh.rai+git@gmail.com>2026-08-15 13:55:35 +0530
commit378cc549ab442c845ac9d62cc8cef6977073fe4d (patch)
tree83b4575d7ad80cdd4f694f596f5655e164e0478f /src/engine/threads.c
parent7d36403836511ab0745791ce98498cf5112633c1 (diff)
md files
Diffstat (limited to 'src/engine/threads.c')
-rw-r--r--src/engine/threads.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/engine/threads.c b/src/engine/threads.c
index 5afe155..541efb1 100644
--- a/src/engine/threads.c
+++ b/src/engine/threads.c
@@ -48,7 +48,7 @@ void threads_go(struct threads *handler) {
pthread_create(
handler->threads + i,
NULL,
- engine_thread,
+ i == 0 ? root_thread : child_thread,
handler->args + i
);
}
@@ -78,10 +78,22 @@ void threads_cleanup(struct threads *handler) {
}
void __threads_args_init(
- struct thread_args* args,
+ thread_args_t* _args,
struct threads *handler,
int i
) {
+ if (i > 0) {
+ struct child_thread_args *args = _args;
+ atomic_init(&args->stop, 0);
+ atomic_init(&args->finished, 0);
+ args->id = i;
+ args->position = handler->position;
+ args->go_args = handler->go_args;
+ args->message = handler->engine_messages->data[i];
+ return;
+ }
+
+ struct root_thread_args *args = _args;
atomic_init(&args->stop, 0);
atomic_init(&args->finished, 0);
args->id = i;