12 void (*f)(void *); //function point
13 void *a; //function arguments
16 ThrPool(int sz, bool blocking=true);
18 template<class C, class A> bool addObjJob(C *o, void (C::*m)(A), A a);
21 bool takeJob(job_t *j);
29 std::vector<std::thread> th_;
31 bool addJob(void (*f)(void *), void *a);
34 template <class C, class A> bool
35 ThrPool::addObjJob(C *o, void (C::*m)(A), A a)
38 class objfunc_wrapper {
43 static void func(void *vvv) {
44 objfunc_wrapper *x = (objfunc_wrapper*)vvv;
46 void (C::*m)(A ) = x->m;
53 objfunc_wrapper *x = new objfunc_wrapper;
57 return addJob(&objfunc_wrapper::func, (void *)x);