From d93466b950ff760a1dd7fd0c2d8ae72c8f1ee0b5 Mon Sep 17 00:00:00 2001 From: nodist Date: Sun, 20 Sep 2026 19:14:31 -0400 Subject: change thread section to process --- include/kpl/process.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 include/kpl/process.h (limited to 'include/kpl/process.h') diff --git a/include/kpl/process.h b/include/kpl/process.h new file mode 100644 index 0000000..d46fd2f --- /dev/null +++ b/include/kpl/process.h @@ -0,0 +1,44 @@ + +#pragma once + +// Kpl threads, allocators, atomic queues and garbage collection + +#include "kpl/macro.h" + +typedef struct { + int32_t count; +} kpl_config_thread; + +typedef struct _kpl_task kpl_task; + +typedef struct _kpl_env kpl_env; + +typedef void kpl_task_fn(kpl_task *task, kpl_env *env); + +typedef struct _kpl_task { + struct _kpl_task *_Atomic next, *join; + // TODO + kpl_result result; + int32_t thread_id; + _Atomic bool join_ready; +} kpl_task; + +typedef struct { + kpl_task *_Atomic head, *_Atomic tail; + struct { + kpl_task *_Atomic next; + } dummy; +} kpl_task_queue; + +typedef struct { + kpl_task_queue task_queue; + _Atomic ssize_t priority; + // TODO + sem_t spin_counter; + pthread_t thread; +} kpl_thread; + +typedef struct { + _Atomic ssize_t total_priority; + kpl_thread *threads; +} kpl_process; -- cgit v1.2.3