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

Classes

class  gts::Backoff< GROWTH_RATE, YIELD >
 An object that backs-off a thread to reduce contention with other threads. More...
 
struct  gts::LockShared< TMutex >
 A scoped lock for a shared mutex concept. More...
 
struct  gts::Lock< TMutex >
 A scoped lock for a mutex concept. More...
 
class  gts::UnfairSpinMutex< TBackoff >
 A unfair (first-ready-first-serve) spin mutex. More...
 
class  gts::FairSpinMutex< TBackoff >
 A fair (first-come-first-serve) spin mutex. More...
 
class  gts::UnfairSharedSpinMutex< TReaders, TBackoff >
 A unfair reader-writer spin mutex. More...
 

Enumerations

enum class  gts::BackoffGrowth { Arithmetic , Geometric }
 The growths rates for a back-off algorithm. More...
 

Functions

GTS_INLINE void gts::spin (uint32_t count)
 Spin on pause 'count' times.
 
GTS_INLINE void gts::pauseFor (uint32_t cycleCount)
 Spin wait for the specified number of cycles.
 

Detailed Description

A library of spinlocks and contention reducing algorithms.

Enumeration Type Documentation

◆ BackoffGrowth

enum gts::BackoffGrowth
strong

The growths rates for a back-off algorithm.

Enumerator
Arithmetic 

Backoff at an arithmetic rate.

Geometric 

Backoff at an geometric rate.