16 #ifndef SURGSIM_FRAMEWORK_THREADPOOL_H 17 #define SURGSIM_FRAMEWORK_THREADPOOL_H 20 #include <boost/thread.hpp> 70 explicit ThreadPool(
size_t numThreads = boost::thread::hardware_concurrency());
82 std::future<R>
enqueue(std::function<R()>
function);
99 std::list<boost::thread> m_threads;
102 std::queue<std::unique_ptr<TaskBase>> m_tasks;
105 boost::mutex m_mutex;
108 boost::condition_variable m_threadSignaler;
111 std::atomic<bool> m_destructing;
117 #include "SurgSim/Framework/ThreadPool-inl.h" 119 #endif //SURGSIM_FRAMEWORK_THREADPOOL_H Wraps glewInit() to separate the glew opengl definitions from the osg opengl definitions only imgui n...
Definition: AddRandomSphereBehavior.cpp:36
Actual tasks, with typed return type.
Definition: ThreadPool-inl.h:34
Definition: ThreadPool-inl.h:25
ThreadPool(size_t numThreads=boost::thread::hardware_concurrency())
Constructor.
Definition: ThreadPool.cpp:25
std::future< R > enqueue(std::function< R()> function)
Queue a task to be run by the ThreadPool.
Definition: ThreadPool-inl.h:57
A thread pool for completing heterogenous tasks.
Definition: ThreadPool.h:65
~ThreadPool()
Desctructor.
Definition: ThreadPool.cpp:60