tracktion-engine 3.0-10-g034fdde4aa5
Tracktion Engine — High level data model for audio applications

« « « Anklang Documentation
Loading...
Searching...
No Matches
Public Member Functions | List of all members
tracktion::graph::ThreadPoolHybrid Struct Reference
Inheritance diagram for tracktion::graph::ThreadPoolHybrid:
tracktion::graph::LockFreeMultiThreadedNodePlayer::ThreadPool

Public Member Functions

 ThreadPoolHybrid (LockFreeMultiThreadedNodePlayer &p)
 
void createThreads (size_t numThreads, juce::AudioWorkgroup workgroupToUse) override
 Subclasses should implement this to create the given number of threads.
 
void clearThreads () override
 Subclasses should implement this to clear all the threads.
 
void signalOne () override
 Called by the player when a Node becomes available to process.
 
void signal (int numToSignal) override
 Called by the player when more than one Node becomes available to process.
 
void signalAll () override
 Called by the player when more than one Node becomes available to process.
 
void wait ()
 
void waitForFinalNode () override
 Called by the player when the audio thread has no free Nodes to process.
 
- Public Member Functions inherited from tracktion::graph::LockFreeMultiThreadedNodePlayer::ThreadPool
 ThreadPool (LockFreeMultiThreadedNodePlayer &p)
 Constructs a ThreadPool for a given LockFreeMultiThreadedNodePlayer.
 
virtual ~ThreadPool ()=default
 Destructor.
 
void signalShouldExit ()
 Signals the pool that all the threads should exit.
 
void resetExitSignal ()
 Signals the pool that all the threads should continue to run and not exit.
 
bool shouldExit () const
 Returns true if all the threads should exit.
 
bool shouldWait ()
 Returns true if there are no free Nodes to be processed and the calling thread should wait until there are Nodes ready.
 
bool isFinalNodeReady ()
 Returns true if all the Nodes have been processed.
 
bool process ()
 Process the next chain of Nodes.
 
void setCurrentNode (LockFreeMultiThreadedNodePlayer::PreparedNode *nodeInUse)
 Sets the current PreparedNode in use.
 

Additional Inherited Members

- Public Attributes inherited from tracktion::graph::LockFreeMultiThreadedNodePlayer::ThreadPool
LockFreeMultiThreadedNodePlayerplayer
 

Detailed Description

Definition at line 292 of file tracktion_NodePlayerThreadPools.cpp.

Constructor & Destructor Documentation

◆ ThreadPoolHybrid()

tracktion::graph::ThreadPoolHybrid::ThreadPoolHybrid ( LockFreeMultiThreadedNodePlayer p)

Definition at line 294 of file tracktion_NodePlayerThreadPools.cpp.

Member Function Documentation

◆ clearThreads()

void tracktion::graph::ThreadPoolHybrid::clearThreads ( )
overridevirtual

Subclasses should implement this to clear all the threads.

Implements tracktion::graph::LockFreeMultiThreadedNodePlayer::ThreadPool.

Definition at line 319 of file tracktion_NodePlayerThreadPools.cpp.

◆ createThreads()

void tracktion::graph::ThreadPoolHybrid::createThreads ( size_t  numThreads,
juce::AudioWorkgroup   
)
overridevirtual

Subclasses should implement this to create the given number of threads.

Implements tracktion::graph::LockFreeMultiThreadedNodePlayer::ThreadPool.

Definition at line 299 of file tracktion_NodePlayerThreadPools.cpp.

◆ signal()

void tracktion::graph::ThreadPoolHybrid::signal ( int  numToSignal)
overridevirtual

Called by the player when more than one Node becomes available to process.

Subclasses should use this to try and get a thread to call process as soon as possible.

Implements tracktion::graph::LockFreeMultiThreadedNodePlayer::ThreadPool.

Definition at line 339 of file tracktion_NodePlayerThreadPools.cpp.

◆ signalAll()

void tracktion::graph::ThreadPoolHybrid::signalAll ( )
overridevirtual

Called by the player when more than one Node becomes available to process.

Subclasses should use this to try and get a thread to call process as soon as possible.

Implements tracktion::graph::LockFreeMultiThreadedNodePlayer::ThreadPool.

Definition at line 350 of file tracktion_NodePlayerThreadPools.cpp.

◆ signalOne()

void tracktion::graph::ThreadPoolHybrid::signalOne ( )
overridevirtual

Called by the player when a Node becomes available to process.

Subclasses should use this to try and get a thread to call process as soon as possible.

Implements tracktion::graph::LockFreeMultiThreadedNodePlayer::ThreadPool.

Definition at line 329 of file tracktion_NodePlayerThreadPools.cpp.

◆ wait()

void tracktion::graph::ThreadPoolHybrid::wait ( )

Definition at line 360 of file tracktion_NodePlayerThreadPools.cpp.

◆ waitForFinalNode()

void tracktion::graph::ThreadPoolHybrid::waitForFinalNode ( )
overridevirtual

Called by the player when the audio thread has no free Nodes to process.

Subclasses should can use this to either spin, pause or wait until a Node does become free or isFinalNodeReady returns true.

Implements tracktion::graph::LockFreeMultiThreadedNodePlayer::ThreadPool.

Definition at line 406 of file tracktion_NodePlayerThreadPools.cpp.


The documentation for this struct was generated from the following file: