diff options
Diffstat (limited to 'src/engine/thread.c')
| -rw-r--r-- | src/engine/thread.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/engine/thread.c b/src/engine/thread.c index 25e583e..912b70f 100644 --- a/src/engine/thread.c +++ b/src/engine/thread.c @@ -1,6 +1,20 @@ +#define ENGINE_THREADS_INTERNAL #include "engine/threads.h" #include <stdio.h> +void threads_go(struct threads *handler) { + int running_count = handler->running_count; + for (int i = 0; i < running_count; i++) { + __threads_args_init(handler->args + i, handler, i); + pthread_create( + handler->threads + i, + NULL, + i == 0 ? root_thread : child_thread, + handler->args + i + ); + } +} + void *child_thread(void *_args) { struct child_thread_args *args = (struct child_thread_args*)_args; args->stop = 0; |
