#include <JobSystem.hpp>
|
| | JobSystem (JobSystemDesc const &desc) |
| |
| | JobSystem (JobSystem const &)=delete |
| |
| JobSystem & | operator= (JobSystem const &)=delete |
| |
| | ~JobSystem () |
| |
| size_t | GetWorkerCount () const noexcept |
| |
| size_t | GetMaxConcurrency () const noexcept |
| |
| template<typename Fn > |
| JobHandle | CreateJob (StringView name, JobPriority priority, Fn &&function, uint32_t dependencyCount=0) |
| |
| template<typename Fn > |
| JobHandle | CreateJob (StringView name, Fn &&function, uint32_t dependencyCount=0) |
| |
| template<typename Fn > |
| JobHandle | CreateJobAfter (StringView name, JobPriority priority, Span< const JobHandle > prerequisites, Fn &&function) |
| |
| template<typename Fn > |
| JobHandle | CreateJobAfter (StringView name, Span< const JobHandle > prerequisites, Fn &&function) |
| |
| JobBarrier | CreateBarrier () |
| |
| void | Wait (JobBarrier &barrier) |
| |
| void | Wait (JobBarrier &&barrier) |
| |
| void | Cancel (JobHandle const &job) |
| |
| void | Join () |
| |
| void | Shutdown () |
| |
| template<typename Fn > |
| JobHandle | Dispatch (StringView name, size_t count, size_t step, JobPriority priority, Fn &&function) |
| |
| template<typename Fn > |
| JobBarrier | ParallelFor (StringView name, size_t count, size_t step, Fn &&function) |
| |
◆ ReadyQueue
◆ ReadyQueues
◆ JobSystem() [1/2]
| Foundation::Core::JobSystem::JobSystem |
( |
JobSystemDesc const & |
desc | ) |
|
|
explicit |
◆ JobSystem() [2/2]
| Foundation::Core::JobSystem::JobSystem |
( |
JobSystem const & |
| ) |
|
|
delete |
◆ ~JobSystem()
| Foundation::Core::JobSystem::~JobSystem |
( |
| ) |
|
◆ BeginSubmit()
| bool Foundation::Core::JobSystem::BeginSubmit |
( |
| ) |
|
|
privatenoexcept |
◆ Cancel()
| void Foundation::Core::JobSystem::Cancel |
( |
JobHandle const & |
job | ) |
|
◆ CancelInternal()
| void Foundation::Core::JobSystem::CancelInternal |
( |
JobHandle const & |
job | ) |
|
|
private |
◆ CreateBarrier()
| JobBarrier Foundation::Core::JobSystem::CreateBarrier |
( |
| ) |
|
◆ CreateJob() [1/2]
template<typename Fn >
| JobHandle Foundation::Core::JobSystem::CreateJob |
( |
StringView |
name, |
|
|
Fn && |
function, |
|
|
uint32_t |
dependencyCount = 0 |
|
) |
| |
|
inline |
◆ CreateJob() [2/2]
◆ CreateJobAfter() [1/2]
◆ CreateJobAfter() [2/2]
◆ CreateJobInternal()
◆ Dispatch()
◆ EndSubmit()
| void Foundation::Core::JobSystem::EndSubmit |
( |
| ) |
|
|
privatenoexcept |
◆ Finish()
◆ GetMaxConcurrency()
| size_t Foundation::Core::JobSystem::GetMaxConcurrency |
( |
| ) |
const |
|
inlinenoexcept |
◆ GetWorkerCount()
| size_t Foundation::Core::JobSystem::GetWorkerCount |
( |
| ) |
const |
|
inlinenoexcept |
◆ Join()
| void Foundation::Core::JobSystem::Join |
( |
| ) |
|
◆ operator=()
◆ ParallelFor()
template<typename Fn >
| JobBarrier Foundation::Core::JobSystem::ParallelFor |
( |
StringView |
name, |
|
|
size_t |
count, |
|
|
size_t |
step, |
|
|
Fn && |
function |
|
) |
| |
|
inline |
◆ PriorityIndex()
| static constexpr size_t Foundation::Core::JobSystem::PriorityIndex |
( |
JobPriority |
priority | ) |
|
|
inlinestaticconstexprprivatenoexcept |
◆ Queue()
| void Foundation::Core::JobSystem::Queue |
( |
JobHandle const & |
job | ) |
|
|
privatenoexcept |
◆ RegisterSuccessor()
| void Foundation::Core::JobSystem::RegisterSuccessor |
( |
JobHandle const & |
prerequisite, |
|
|
JobHandle const & |
dependent |
|
) |
| |
|
private |
◆ ReleaseBarrier()
| void Foundation::Core::JobSystem::ReleaseBarrier |
( |
| ) |
|
|
privatenoexcept |
◆ ReleaseDependency()
| void Foundation::Core::JobSystem::ReleaseDependency |
( |
JobHandle const & |
job, |
|
|
uint32_t |
count, |
|
|
bool |
prerequisiteFailed |
|
) |
| |
|
private |
◆ Shutdown()
| void Foundation::Core::JobSystem::Shutdown |
( |
| ) |
|
◆ TryExecuteOne()
| bool Foundation::Core::JobSystem::TryExecuteOne |
( |
size_t |
workerId | ) |
|
|
private |
◆ Wait() [1/2]
| void Foundation::Core::JobSystem::Wait |
( |
JobBarrier && |
barrier | ) |
|
|
inline |
◆ Wait() [2/2]
| void Foundation::Core::JobSystem::Wait |
( |
JobBarrier & |
barrier | ) |
|
◆ WorkerMain()
| void Foundation::Core::JobSystem::WorkerMain |
( |
size_t |
workerId | ) |
|
|
private |
◆ JobBarrier
◆ JobDependency
| friend class JobDependency |
|
friend |
◆ JobHandle
◆ mAccepting
| Atomic<bool> Foundation::Core::JobSystem::mAccepting {true} |
|
private |
◆ mAllocator
| Allocator* Foundation::Core::JobSystem::mAllocator |
|
private |
◆ mCallerMutex
| Mutex Foundation::Core::JobSystem::mCallerMutex |
|
private |
◆ mMaxBarriers
| size_t Foundation::Core::JobSystem::mMaxBarriers |
|
private |
◆ mName
| String Foundation::Core::JobSystem::mName |
|
private |
◆ mOutstanding
| Atomic<size_t> Foundation::Core::JobSystem::mOutstanding {0} |
|
private |
◆ mPool
◆ mReady
◆ mStopped
| Atomic<bool> Foundation::Core::JobSystem::mStopped {false} |
|
private |
◆ mStopping
| Atomic<bool> Foundation::Core::JobSystem::mStopping {false} |
|
private |
◆ mSubmitCV
| CondVar Foundation::Core::JobSystem::mSubmitCV |
|
private |
◆ mSubmitMutex
| Mutex Foundation::Core::JobSystem::mSubmitMutex |
|
private |
◆ mSubmitting
| size_t Foundation::Core::JobSystem::mSubmitting {} |
|
private |
◆ mThreads
◆ mWakeEpoch
| Atomic<size_t> Foundation::Core::JobSystem::mWakeEpoch {0} |
|
private |
The documentation for this class was generated from the following files: