#ifndef INCLUDED_THREAD_POOL_H #define INCLUDED_THREAD_POOL_H #include // IWYU pragma: keep #include typedef struct _ThreadPool ThreadPool; typedef void (*Task)(void *); typedef void (*FreeFunc)(void *); ThreadPool *make_thread_pool(size_t parallelism, sigset_t sig_mask); void destroy_thread_pool(ThreadPool *pool); void thread_pool_enqueue(ThreadPool *pool, Task task, void *arg, FreeFunc ff); #endif