From 62cbefa6a8fca583c6f600f1d7e24f0c61c91b1e Mon Sep 17 00:00:00 2001 From: TazyFoundSoup Date: Thu, 28 May 2026 11:43:01 +1000 Subject: feat(thread): Add thread jobs and thread wrapper --- include/tinyff/thread/thread.h | 17 +++++++++++++++++ src/thread/thread.c | 12 ++++++++++++ 2 files changed, 29 insertions(+) diff --git a/include/tinyff/thread/thread.h b/include/tinyff/thread/thread.h index e69de29..40c09a0 100644 --- a/include/tinyff/thread/thread.h +++ b/include/tinyff/thread/thread.h @@ -0,0 +1,17 @@ +#ifdef USE_THREAD + +#ifndef TINYFF_THREAD_H +#define TINYFF_THREAD_H + +typedef void (*ff_job_cb)(void *arg); + +typedef struct { + ff_job_cb callback; + void *arg; +} ff_thread_job; + +void *ff_thread_wrapper(void *ptr); + +// Each platform must have their own bridge for running a thread job +// Like pthreads for POSIX systems +#endif diff --git a/src/thread/thread.c b/src/thread/thread.c index e69de29..524c64a 100644 --- a/src/thread/thread.c +++ b/src/thread/thread.c @@ -0,0 +1,12 @@ +#include + +void *thread_wrapper(void *ptr) { + ff_thread_job *job = (ff_thread_job *)ptr; + + if (job->callback) { + job->callback(job->arg); + } + + free(job); + return NULL; +} -- cgit v1.2.3