Grok
9.5.0
|
#include <ThreadPool.hpp>
Public Member Functions | |
ThreadPool (size_t) | |
template<class F , class... Args> | |
auto | enqueue (F &&f, Args &&... args) -> std::future< typename std::invoke_result< F, Args... >::type > |
~ThreadPool () | |
int | thread_number (std::thread::id id) |
size_t | num_threads () |
Static Public Member Functions | |
static ThreadPool * | get () |
static ThreadPool * | instance (uint32_t numthreads) |
static void | release () |
static uint32_t | hardware_concurrency () |
Private Attributes | |
std::vector< std::thread > | workers |
std::queue< std::function< void()> > | tasks |
std::mutex | queue_mutex |
std::condition_variable | condition |
bool | stop |
std::map< std::thread::id, size_t > | id_map |
size_t | m_num_threads |
Static Private Attributes | |
static ThreadPool * | singleton = nullptr |
static std::mutex | singleton_mutex |
|
inline |
References workers.
Referenced by instance().
|
inline |
References condition, queue_mutex, stop, and workers.
auto ThreadPool::enqueue | ( | F && | f, |
Args &&... | args | ||
) | -> std::future<typename std::invoke_result<F, Args...>::type> |
|
inlinestatic |
References instance().
Referenced by grk::CodeStreamCompress::compress(), grk::T1CompressScheduler::compress(), grk::T1DecompressScheduler::decompress(), grk::CodeStreamDecompress::decompressTiles(), grk::WaveletFwdImpl::encode_procedure(), grk::T1CompressScheduler::scheduleCompress(), grk::T1DecompressScheduler::scheduleDecompress(), and grk::HWY_NAMESPACE::vscheduler().
|
inlinestatic |
Referenced by grk_compress_set_default_params(), instance(), and main().
|
inlinestatic |
References hardware_concurrency(), singleton, singleton_mutex, and ThreadPool().
Referenced by get(), and grk_initialize().
|
inline |
References m_num_threads.
Referenced by grk::T1CompressScheduler::compress(), grk::T1DecompressScheduler::decompress(), grk::CodeStreamDecompress::decompressTiles(), grk::WaveletFwdImpl::encode_procedure(), grk::T1CompressScheduler::scheduleCompress(), grk::T1DecompressScheduler::scheduleDecompress(), and grk::HWY_NAMESPACE::vscheduler().
|
inlinestatic |
References singleton, and singleton_mutex.
Referenced by grk_deinitialize().
|
inline |
References id_map.
Referenced by grk::T1CompressScheduler::compress(), and grk::T1DecompressScheduler::decompress().
|
private |
Referenced by ~ThreadPool().
|
private |
Referenced by thread_number().
|
private |
Referenced by num_threads().
|
private |
Referenced by ~ThreadPool().
|
staticprivate |
Referenced by instance(), and release().
|
staticprivate |
Referenced by instance(), and release().
|
private |
Referenced by ~ThreadPool().
|
private |
|
private |
Referenced by ThreadPool(), and ~ThreadPool().