41 #ifndef Core_Thread_ThreadPool_h
42 #define Core_Thread_ThreadPool_h
56 class ThreadPoolHelper;
89 void parallel(T* ptr,
void (T::*pmf)(
int),
int numThreads) {
96 template<
class T,
class Arg1>
97 void parallel(T* ptr,
void (T::*pmf)(
int, Arg1),
106 template<
class T,
class Arg1,
class Arg2>
107 void parallel(T* ptr,
void (T::* pmf)(
int, Arg1, Arg2),
116 template<
class T,
class Arg1,
class Arg2,
class Arg3>
117 void parallel(T* ptr,
void (T::* pmf)(
int, Arg1, Arg2, Arg3),
119 Arg1 a1, Arg2 a2, Arg3 a3) {
128 std::vector<ThreadPoolHelper*> threads_;
void parallel(T *ptr, void(T::*pmf)(int), int numThreads)
Definition: ThreadPool.h:89
Definition: ThreadPool.h:69
Definition: ParallelBase.h:62
void parallel(T *ptr, void(T::*pmf)(int, Arg1), int numThreads, Arg1 a1)
Another overloaded version of parallel that passes 1 argument.
Definition: ThreadPool.h:97
Definition: Parallel3.h:61
Definition: Parallel1.h:61
void parallel(T *ptr, void(T::*pmf)(int, Arg1, Arg2, Arg3), int numThreads, Arg1 a1, Arg2 a2, Arg3 a3)
Another overloaded version of parallel that passes 3 arguments.
Definition: ThreadPool.h:117
Automatically instantiate several threads, with 2 arguments.
ThreadPool(const char *name)
const char * name[]
Definition: BoostGraphExampleTests.cc:87
Definition: Parallel2.h:61
Definition: Parallel.h:61
void parallel(const ParallelBase &helper, int nthreads)
friend class ThreadPoolHelper
Definition: ThreadPool.h:131
Automatically instantiate several threads, with 1 argument.
void parallel(T *ptr, void(T::*pmf)(int, Arg1, Arg2), int numThreads, Arg1 a1, Arg2 a2)
Another overloaded version of parallel that passes 2 arguments.
Definition: ThreadPool.h:107
~ThreadPool()
Destroy the pool and shutdown all threads.
Definition: ThreadGroup.h:68