11#ifndef INCGUARD_MGL_TASK_THREAD_POOL_H_1699017261
12#define INCGUARD_MGL_TASK_THREAD_POOL_H_1699017261
25 int32_t
Initialize(int32_t threadCount)
noexcept;
54 bool _isAvailable{
false};
58 STL::vector<Element> _threads;
59 uint32_t _executeCount{0};
61 STL::unordered_map<Identifier, uint32_t> _barrierMap;
64 std::mutex _conditionMutex;
65 std::condition_variable _condition;
タスクノード
Definition mgl_task_node.h:20
スレッドからの通知を受けるためのリスナークラス
Definition mgl_task_thread.h:28
Definition mgl_task_thread_pool.h:23
void OnCompleted(uint32_t index, const Node *node) noexcept override
完了通知
Definition mgl_task_thread_pool.cc:177
constexpr bool IsAvailable() const noexcept
スレッドプールが利用可能かを取得
Definition mgl_task_thread_pool.h:34
void WaitForExecutable() noexcept
実行可能になるまで待機
Definition mgl_task_thread_pool.cc:127
int32_t Initialize(int32_t threadCount) noexcept
初期化処理
Definition mgl_task_thread_pool.cc:24
void WaitForComplete() noexcept
全てのタスクを終えるまで待機
Definition mgl_task_thread_pool.cc:143
void SyncBarrier(Identifier identifier) noexcept
バリア同期を行う
Definition mgl_task_thread_pool.cc:160
std::unique_ptr< T, Deleter > unique_ptr
MGLのアロケータを利用するユニークポインタ
Definition mgl_stl_memory.h:247
uint8_t ExecuteStage
実行ステージ
Definition mgl_task_defs.h:68