18 lines
431 B
C
18 lines
431 B
C
#ifndef INCLUDED_THREAD_POOL_H
|
|
#define INCLUDED_THREAD_POOL_H
|
|
|
|
#include <signal.h> // IWYU pragma: keep
|
|
#include <stddef.h>
|
|
|
|
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
|