Games Task Scheduler (GTS)
A multi-processor scheduling framework for games engines
MicroScheduler

Modules

 ParallelPatterns
 

Classes

class  gts::MicroScheduler
 A work-stealing task scheduler. The scheduler is executed by the WorkerPool it is initialized with. More...
 
struct  gts::TaskContext
 The context associated with the task being executed. More...
 
struct  gts::WorkerThreadDesc
 The description of a worker Thread. More...
 
struct  gts::WorkerPoolVisitor
 A visitor object for the worker pool. Allows the user to be notified at particular points during the WorkerPool's lifetime. More...
 
struct  gts::WorkerPoolDesc
 The description of a WorkerPool. More...
 
struct  gts::MicroSchedulerDesc
 The description of a MicroScheduler. More...
 
class  gts::Task
 A Task payload that embeds TFunc and TArgs into the Task's data. It makes it easy to construct a Task from a lambda or a function plus arguments similar to std::thread. More...
 
class  gts::CStyleTask
 A Task payload that embeds a function pointer and data argument into the the Task's data. More...
 
class  gts::LambdaTaskWrapper< TFunc, TArgs >
 A Task payload that embeds TFunc and TArgs into the Task's data. It makes it easy to construct a Task from a lambda or a function plus arguments similar to std::thread. More...
 
class  gts::EmptyTask
 A empty Task that can be used as dummy or placeholder. More...
 
class  gts::WorkerPool
 A collection of running Worker threads that a MicroScheduler can be run on. More...
 

Typedefs

using gts::OnCheckForTasksFcn = Task *(*)(void *pUserData, MicroScheduler *pThisScheduler, OwnedId localSchedulerId, bool isCallerExternal, bool &executedTask)
 

Enumerations

enum class  MicroSchedulerCallbackType { CHECK_FOR_TASK , COUNT }
 

Variables

constexpr size_t gts::DESC_NAME_SIZE = 64
 The fixed size for descriptive names.
 
constexpr uint32_t gts::ANY_WORKER = UNKNOWN_UID
 

Detailed Description

Fine-grained Task scheduling abstraction.