![]() |
Peano
|
#include <task.h>
Static Public Member Functions | |
template<StatelessTaskGenerator T> | |
static void | runSerialGenerator (T generator, u32 numThreads=0) |
template<typename StateInitF , StatefulTaskGenerator< std::invoke_result_t< StateInitF > > T> | |
static auto | runSerialGenerator (T generator, StateInitF stateInitF, u32 numThreads=0) |
template<StatelessTaskGenerator T> | |
static void | runParallelGenerator (T generator, u32 numThreads=0) |
template<typename StateInitF , StatefulTaskGenerator< std::invoke_result_t< StateInitF > > T> | |
static auto | runParallelGenerator (T generator, StateInitF stateInitF, u32 numThreads=0) |
static u32 | THREAD_COUNT (u32 numThreads=0) |
static u32 | MAX_THREADS () |
Static Private Member Functions | |
template<typename Task , typename TaskGenerator > | |
static std::optional< Task > | createNewTasks (TaskGenerator *generator, SPMCChannel< Task > *channel, std::atomic_int32_t *producerThreadId) |
template<typename Val , StatefulTask< Val > Task> | |
static void | invokeTask (Task &task, Val &val, i32 threadId) |
template<typename ValueType , StatefulTaskGenerator< ValueType > TaskGenerator, StatefulTask< ValueType > Task, typename StateInitF > | |
static void | producerConsumerLoop (i32 threadId, TaskGenerator *generator, SPMCChannel< Task > *channel, StateInitF stateInitF, ValueType *retVal, std::atomic_int32_t *producerThreadId) |
static ThreadPool & | WORKER_POOL () |
template<typename StateInitF , StatefulTaskGenerator< std::invoke_result_t< StateInitF > > T> | |
static auto | runSerialGeneratorSerial (T generator, StateInitF stateInitF) |
template<typename StateInitF , StatefulTaskGenerator< std::invoke_result_t< StateInitF > > T> | |
static auto | runSerialGeneratorParallel (T generator, StateInitF stateInitF, u32 numThreads) |
template<typename StateInitF , StatefulTaskGenerator< std::invoke_result_t< StateInitF > > T> | |
static auto | runParallelGeneratorParallel (T &generator, StateInitF stateInitF, u32 numThreads) |
|
staticprivate |
Definition at line 173 of file task.h.
References SPMCChannel< Item, CELLS_PER_CONSUMER >::close(), SPMCChannel< Item, CELLS_PER_CONSUMER >::isClosed(), and SPMCChannel< Item, CELLS_PER_CONSUMER >::put().
Referenced by producerConsumerLoop().
|
staticprivate |
Definition at line 198 of file task.h.
References TaskCtx::workerId.
Referenced by producerConsumerLoop(), runParallelGeneratorParallel(), and runSerialGeneratorSerial().
|
static |
Definition at line 387 of file task.h.
References ThreadPool::size(), and WORKER_POOL().
Referenced by THREAD_COUNT().
|
staticprivate |
Definition at line 208 of file task.h.
References createNewTasks(), SPMCChannel< Item, CELLS_PER_CONSUMER >::getReader(), invokeTask(), and SPMCChannel< Item, CELLS_PER_CONSUMER >::isClosed().
|
static |
Definition at line 375 of file task.h.
References runParallelGeneratorParallel(), runSerialGeneratorSerial(), and THREAD_COUNT().
|
static |
Definition at line 368 of file task.h.
References runParallelGenerator(), THREAD_COUNT(), and ToStatefulGenerator().
Referenced by runParallelGenerator().
|
staticprivate |
Definition at line 318 of file task.h.
References ThreadPool::dispatch(), invokeTask(), ThreadPool::wait(), and WORKER_POOL().
Referenced by runParallelGenerator().
|
static |
Definition at line 361 of file task.h.
References runSerialGeneratorParallel(), runSerialGeneratorSerial(), and THREAD_COUNT().
|
static |
Definition at line 354 of file task.h.
References runSerialGenerator(), THREAD_COUNT(), and ToStatefulGenerator().
Referenced by runSerialGenerator().
|
staticprivate |
Definition at line 293 of file task.h.
References ThreadPool::dispatch(), ThreadPool::wait(), and WORKER_POOL().
Referenced by runSerialGenerator().
|
staticprivate |
Definition at line 276 of file task.h.
References invokeTask().
Referenced by runParallelGenerator(), and runSerialGenerator().
Definition at line 381 of file task.h.
References MAX_THREADS().
Referenced by runParallelGenerator(), runParallelGenerator(), runSerialGenerator(), and runSerialGenerator().
|
staticprivate |
Definition at line 270 of file task.h.
Referenced by MAX_THREADS(), runParallelGeneratorParallel(), and runSerialGeneratorParallel().