|
Libosmium
Fast and flexible C++ library for working with OpenStreetMap data
|
#include <pool.hpp>

Classes | |
| class | thread_joiner |
Public Types | |
| enum | { default_num_threads = 0 } |
| enum | { default_queue_size = 0U } |
| template<typename TFunction> | |
| using | submit_func_result_type = std::result_of_t<TFunction()> |
Public Member Functions | |
| Pool (int num_threads=default_num_threads, std::size_t max_queue_size=default_queue_size) | |
| void | shutdown_all_workers () |
| Pool (const Pool &)=delete | |
| Pool & | operator= (const Pool &)=delete |
| Pool (Pool &&)=delete | |
| Pool & | operator= (Pool &&)=delete |
| ~Pool () | |
| int | num_threads () const noexcept |
| std::size_t | queue_size () const |
| bool | queue_empty () const |
| template<typename TFunction> | |
| std::future< submit_func_result_type< TFunction > > | submit (TFunction &&func) |
Static Public Member Functions | |
| static Pool & | default_instance () |
Private Member Functions | |
| void | worker_thread () |
Private Attributes | |
| osmium::thread::Queue< function_wrapper > | m_work_queue |
| std::vector< std::thread > | m_threads |
| thread_joiner | m_joiner |
| int | m_num_threads |
Thread pool.
| using osmium::thread::Pool::submit_func_result_type = std::result_of_t<TFunction()> |
|
inlineexplicit |
Create thread pool with the given number of threads. If num_threads is 0, the number of threads is read from the environment variable OSMIUM_POOL_THREADS. The default value in that case is -2.
If the number of threads is a negative number, it will be set to the actual number of cores on the system plus the given number, ie it will leave a number of cores unused.
In all cases the minimum number of threads in the pool is 1.
If max_queue_size is 0, the queue size is read from the environment variable OSMIUM_MAX_WORK_QUEUE_SIZE.
|
delete |
|
delete |
|
inline |
|
inlinestatic |
Return a statically created "default pool". This is initialized the first time you use it.
Do not use this if your program will fork.
|
inlinenoexcept |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineprivate |
|
private |
|
private |
|
private |
|
private |