summaryrefslogtreecommitdiff
path: root/src/engine/thread.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/thread.c')
-rw-r--r--src/engine/thread.c14
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;