// -*- mode: c++; tab-width: 2; indent-tabs-mode: nil -*- #pragma once #include #include #include #include #include #include #include #include namespace ug { class ThreadPool { typedef boost::asio::io_service service_t; service_t m_service; boost::thread_group m_pool; boost::scoped_ptr m_busywork; std::vector > m_workers; public: ThreadPool(size_t const num_workers); ~ThreadPool(); template void add(callable& job) { m_service.post(job); } }; // end of class declaration ThreadPool } // end of namespace ug