diff options
| author | Aargh Rai <aargh.rai+git@gmail.com> | 2026-08-15 13:55:35 +0530 |
|---|---|---|
| committer | Aargh Rai <aargh.rai+git@gmail.com> | 2026-08-15 13:55:35 +0530 |
| commit | 378cc549ab442c845ac9d62cc8cef6977073fe4d (patch) | |
| tree | 83b4575d7ad80cdd4f694f596f5655e164e0478f /src/engine/threads.c | |
| parent | 7d36403836511ab0745791ce98498cf5112633c1 (diff) | |
md files
Diffstat (limited to 'src/engine/threads.c')
| -rw-r--r-- | src/engine/threads.c | 16 |
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; |
