16 #ifndef SURGSIM_FRAMEWORK_THREADPOOL_INL_H 17 #define SURGSIM_FRAMEWORK_THREADPOOL_INL_H 37 explicit Task(std::function<R()>
function) :
49 return m_task.get_future();
59 std::unique_ptr<Task<R>> task = std::unique_ptr<Task<R>>(
new Task<R>(
function));
60 std::future<R> future = task->getFuture();
62 boost::unique_lock<boost::mutex> lock(
m_mutex);
72 #endif //SURGSIM_FRAMEWORK_THREADPOOL_INL_H Definition: CompoundShapeToGraphics.cpp:29
Actual tasks, with typed return type.
Definition: ThreadPool-inl.h:34
Definition: ThreadPool-inl.h:25
std::packaged_task< R()> m_task
Definition: ThreadPool-inl.h:53
std::queue< std::unique_ptr< TaskBase > > m_tasks
Queued tasks waiting for an available thread.
Definition: ThreadPool.h:102
virtual ~TaskBase()
Definition: ThreadPool-inl.h:30
Task(std::function< R()> function)
Definition: ThreadPool-inl.h:37
std::future< R > enqueue(std::function< R()> function)
Queue a task to be run by the ThreadPool.
Definition: ThreadPool-inl.h:57
void execute() override
Definition: ThreadPool-inl.h:42
boost::mutex m_mutex
Mutex for protecting the tasks queue.
Definition: ThreadPool.h:105
std::future< R > getFuture()
Definition: ThreadPool-inl.h:47
boost::condition_variable m_threadSignaler
Signaler for waking up threads waiting for tasks.
Definition: ThreadPool.h:108