载入中...
搜索中...
未找到
eve::thread::JobSystemThreadPool类 参考final

Default JobSystem backend: a dependency-aware scheduler over the existing ThreadPool worker pool. 更多...

#include <JobSystemThreadPool.h>

类 eve::thread::JobSystemThreadPool 继承关系图:
eve::thread::JobSystem

类

struct  State
 

Public 成员函数

 JobSystemThreadPool (int workerCount)
 Constructs a JobSystemThreadPool.
 
 ~JobSystemThreadPool () override
 Releases JobSystemThreadPool resources.
 
 JobSystemThreadPool (const JobSystemThreadPool &)=delete
 
JobSystemThreadPool & operator= (const JobSystemThreadPool &)=delete
 
int getWorkerCount () const override
 Returns the worker count.
 
bool isRunning () const override
 True when running.
 
int getPendingCount () const override
 Returns the pending count.
 
int getOutstandingCount () const override
 Returns the outstanding count.
 
Job * submit (JobFunc body) override
 Submit.
 
Job * createJob (JobFunc body) override
 Creates job.
 
void schedule (Job *job) override
 Schedule.
 
Job * parallelFor (int first, int last, ParallelForBody body, int chunk=1) override
 Parallel for.
 
TaskGroup * createTaskGroup () override
 Creates task group.
 
Job * submitFrame (JobFunc body) override
 Submit frame.
 
Job * createFrameJob (JobFunc body) override
 Creates frame job.
 
Job * parallelForFrame (int first, int last, ParallelForBody body, int chunk=1) override
 Parallel for frame.
 
TaskGroup * createFrameTaskGroup () override
 Creates frame task group.
 
void beginFrame () override
 Begins frame.
 
void endFrame () override
 Ends frame.
 
void waitAll () override
 Waits all.
 
void stop () override
 Stops .
 
- Public 成员函数 继承自 eve::thread::JobSystem
virtual ~JobSystem ()=default
 Releases JobSystem resources.
 

详细描述

Default JobSystem backend: a dependency-aware scheduler over the existing ThreadPool worker pool.

The ThreadPool keeps its FIFO + CV worker model unchanged; this class uses it purely as the worker-thread provider. Job scheduling (dependencies, ready queue, fork/join help-execution, per-frame arena) lives here, so replacing the backend with TBB does not touch any engine code that uses JobSystem.

在文件 JobSystemThreadPool.h 第 24 行定义.

构造及析构函数说明

◆ JobSystemThreadPool() [1/2]

eve::thread::JobSystemThreadPool::JobSystemThreadPool ( int  workerCount)
explicit

Constructs a JobSystemThreadPool.

在文件 JobSystemThreadPool.cpp 第 512 行定义.

引用了 state.

◆ ~JobSystemThreadPool()

eve::thread::JobSystemThreadPool::~JobSystemThreadPool ( )
override

Releases JobSystemThreadPool resources.

在文件 JobSystemThreadPool.cpp 第 542 行定义.

◆ JobSystemThreadPool() [2/2]

eve::thread::JobSystemThreadPool::JobSystemThreadPool ( const JobSystemThreadPool &  )
delete

成员函数说明

◆ beginFrame()

void eve::thread::JobSystemThreadPool::beginFrame ( )
overridevirtual

Begins frame.

实现了 eve::thread::JobSystem.

在文件 JobSystemThreadPool.cpp 第 660 行定义.

◆ createFrameJob()

Job * eve::thread::JobSystemThreadPool::createFrameJob ( JobFunc  body)
overridevirtual

Creates frame job.

实现了 eve::thread::JobSystem.

在文件 JobSystemThreadPool.cpp 第 643 行定义.

引用了 body.

◆ createFrameTaskGroup()

TaskGroup * eve::thread::JobSystemThreadPool::createFrameTaskGroup ( )
overridevirtual

Creates frame task group.

实现了 eve::thread::JobSystem.

在文件 JobSystemThreadPool.cpp 第 652 行定义.

引用了 group , 以及 ptr.

◆ createJob()

Job * eve::thread::JobSystemThreadPool::createJob ( JobFunc  body)
overridevirtual

Creates job.

实现了 eve::thread::JobSystem.

在文件 JobSystemThreadPool.cpp 第 604 行定义.

引用了 body.

◆ createTaskGroup()

TaskGroup * eve::thread::JobSystemThreadPool::createTaskGroup ( )
overridevirtual

Creates task group.

实现了 eve::thread::JobSystem.

在文件 JobSystemThreadPool.cpp 第 626 行定义.

◆ endFrame()

void eve::thread::JobSystemThreadPool::endFrame ( )
overridevirtual

Ends frame.

实现了 eve::thread::JobSystem.

在文件 JobSystemThreadPool.cpp 第 664 行定义.

◆ getOutstandingCount()

int eve::thread::JobSystemThreadPool::getOutstandingCount ( ) const
overridevirtual

Returns the outstanding count.

实现了 eve::thread::JobSystem.

在文件 JobSystemThreadPool.cpp 第 586 行定义.

◆ getPendingCount()

int eve::thread::JobSystemThreadPool::getPendingCount ( ) const
overridevirtual

Returns the pending count.

实现了 eve::thread::JobSystem.

在文件 JobSystemThreadPool.cpp 第 581 行定义.

◆ getWorkerCount()

int eve::thread::JobSystemThreadPool::getWorkerCount ( ) const
overridevirtual

Returns the worker count.

实现了 eve::thread::JobSystem.

在文件 JobSystemThreadPool.cpp 第 572 行定义.

◆ isRunning()

bool eve::thread::JobSystemThreadPool::isRunning ( ) const
overridevirtual

True when running.

实现了 eve::thread::JobSystem.

在文件 JobSystemThreadPool.cpp 第 576 行定义.

◆ operator=()

JobSystemThreadPool & eve::thread::JobSystemThreadPool::operator= ( const JobSystemThreadPool &  )
delete

◆ parallelFor()

Job * eve::thread::JobSystemThreadPool::parallelFor ( int  first,
int  last,
ParallelForBody  body,
int  chunk = 1 
)
overridevirtual

Parallel for.

实现了 eve::thread::JobSystem.

在文件 JobSystemThreadPool.cpp 第 622 行定义.

引用了 body , 以及 first.

◆ parallelForFrame()

Job * eve::thread::JobSystemThreadPool::parallelForFrame ( int  first,
int  last,
ParallelForBody  body,
int  chunk = 1 
)
overridevirtual

Parallel for frame.

实现了 eve::thread::JobSystem.

在文件 JobSystemThreadPool.cpp 第 648 行定义.

引用了 body , 以及 first.

◆ schedule()

void eve::thread::JobSystemThreadPool::schedule ( Job *  job)
overridevirtual

Schedule.

实现了 eve::thread::JobSystem.

在文件 JobSystemThreadPool.cpp 第 609 行定义.

引用了 impl.

◆ stop()

void eve::thread::JobSystemThreadPool::stop ( )
overridevirtual

Stops .

实现了 eve::thread::JobSystem.

在文件 JobSystemThreadPool.cpp 第 688 行定义.

◆ submit()

Job * eve::thread::JobSystemThreadPool::submit ( JobFunc  body)
overridevirtual

Submit.

实现了 eve::thread::JobSystem.

在文件 JobSystemThreadPool.cpp 第 591 行定义.

引用了 body.

◆ submitFrame()

Job * eve::thread::JobSystemThreadPool::submitFrame ( JobFunc  body)
overridevirtual

Submit frame.

实现了 eve::thread::JobSystem.

在文件 JobSystemThreadPool.cpp 第 630 行定义.

引用了 body.

◆ waitAll()

void eve::thread::JobSystemThreadPool::waitAll ( )
overridevirtual

Waits all.

实现了 eve::thread::JobSystem.

在文件 JobSystemThreadPool.cpp 第 668 行定义.

引用了 state.


该类的文档由以下文件生成: