2 #ifndef CNOID_UTIL_THREAD_POOL_H 3 #define CNOID_UTIL_THREAD_POOL_H 6 #include <boost/thread.hpp> 7 #include <boost/function.hpp> 14 std::queue<boost::function<void()> > queue;
15 boost::thread_group group;
17 boost::condition_variable condition;
23 for(
int i = 0; i < size; i++){
24 group.create_thread(boost::bind(&ThreadPool::run,
this));
30 boost::mutex::scoped_lock lock(mutex);
32 condition.notify_all();
38 void start(boost::function<
void()> f) {
39 boost::mutex::scoped_lock lock(mutex);
41 condition.notify_one();
47 boost::function<void()> f;
49 boost::mutex::scoped_lock lock(mutex);
51 while (queue.empty() && !isDestroying){
ThreadPool(int size=1)
Definition: ThreadPool.h:21
~ThreadPool()
Definition: ThreadPool.h:28
Definition: ThreadPool.h:11
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
void start(boost::function< void()> f)
Definition: ThreadPool.h:38