From edc34e77d5f19aa2a697f16d9e2d24677dafb506 Mon Sep 17 00:00:00 2001 From: TazyFoundSoup Date: Mon, 8 Jun 2026 10:35:16 +1000 Subject: feat(thread): Implement pthread bridge and fix allocator usage in wrapper --- src/bridges/pthread/thread_bridge.c | 11 +++++++++++ src/thread/thread.c | 10 +++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 src/bridges/pthread/thread_bridge.c (limited to 'src') diff --git a/src/bridges/pthread/thread_bridge.c b/src/bridges/pthread/thread_bridge.c new file mode 100644 index 0000000..e014a3a --- /dev/null +++ b/src/bridges/pthread/thread_bridge.c @@ -0,0 +1,11 @@ +#ifdef USE_THREAD + +#include + +pthread_t run_job_in_thread(ff_thread_job *job) { + pthread_t thread; + pthread_create(&thread, NULL, ff_thread_wrapper, job); + return thread; +} + +#endif \ No newline at end of file diff --git a/src/thread/thread.c b/src/thread/thread.c index 524c64a..d8ba05b 100644 --- a/src/thread/thread.c +++ b/src/thread/thread.c @@ -1,12 +1,16 @@ +#ifdef USE_THREAD + #include -void *thread_wrapper(void *ptr) { +void *ff_thread_wrapper(void *ptr) { ff_thread_job *job = (ff_thread_job *)ptr; - + if (job->callback) { job->callback(job->arg); } - free(job); + job->ctx->allocator.ff_free(job); return NULL; } + +#endif \ No newline at end of file -- cgit v1.2.3