21#pragma GCC diagnostic push
22#pragma GCC diagnostic ignored "-Wsign-conversion"
23#pragma GCC diagnostic ignored "-Wconversion"
25#pragma GCC diagnostic ignored "-Wimplicit-int-float-conversion"
28#include <taskflow/taskflow.hpp>
30#pragma GCC diagnostic pop
45 static void create(uint32_t numThreads)
47 std::lock_guard<std::mutex> lock(
mutex_);
48 numThreads = numThreads ? numThreads : std::thread::hardware_concurrency() + 1;
64 static tf::Executor&
get(
void)
66 std::lock_guard<std::mutex> lock(
mutex_);
87 std::lock_guard<std::mutex> lock(
mutex_);
static void destroy()
Destroys ExecSingleton.
Definition ThreadPool.hpp:85
static void create(uint32_t numThreads)
Creates singleton instance.
Definition ThreadPool.hpp:45
static std::unique_ptr< tf::Executor > instance_
Taskflow Executor instance.
Definition ThreadPool.hpp:112
ExecSingleton(const ExecSingleton &)=delete
static size_t num_threads()
Gets total number of threads.
Definition ThreadPool.hpp:77
static tf::Executor & get(void)
Gets current instance of the Singleton (creates with full hardware concurrency if null)
Definition ThreadPool.hpp:64
ExecSingleton & operator=(const ExecSingleton &)=delete
ExecSingleton()=default
Constructs an ExecSingleton.
static std::mutex mutex_
std::mutex to control access to instance_
Definition ThreadPool.hpp:117
static uint32_t workerId(void)
Gets worker id for current worker.
Definition ThreadPool.hpp:95
static size_t numThreads_
total number of threads
Definition ThreadPool.hpp:123