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
41 static tf::Executor&
instance(uint32_t numthreads)
43 std::lock_guard<std::mutex> lock(
mutex_);
44 instance_ = std::make_unique<tf::Executor>(numthreads ? numthreads
45 : std::thread::hardware_concurrency());
51 static tf::Executor&
get(
void)
53 std::lock_guard<std::mutex> lock(
mutex_);
62 std::lock_guard<std::mutex> lock(
mutex_);
68 return get().num_workers() > 1 ? (uint32_t)
get().this_worker_id() : 0;
Definition ThreadPool.hpp:34
static void destroy()
Definition ThreadPool.hpp:60
static std::unique_ptr< tf::Executor > instance_
Definition ThreadPool.hpp:74
ExecSingleton(const ExecSingleton &)=delete
static uint32_t threadId(void)
Definition ThreadPool.hpp:66
static tf::Executor & instance(uint32_t numthreads)
Definition ThreadPool.hpp:41
static tf::Executor & get(void)
Definition ThreadPool.hpp:51
ExecSingleton & operator=(const ExecSingleton &)=delete
static std::mutex mutex_
Definition ThreadPool.hpp:75