threadpool module for use in programs
to use in program:
struct thread_pool * threadpool = thread_pool_new(nthreads);
struct future * futu = thread_pool_submit(threadpool, (fork_join_task_t) task, &args);
void* result = future_get(futu);
refer to threadpool.h for specifics