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::ThreadPoolRT Struct Reference
Inheritance diagram for tracktion::graph::ThreadPoolRT:
tracktion::graph::LockFreeMultiThreadedNodePlayer::ThreadPool

Public Member Functions

 ThreadPoolRT (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) 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 177 of file tracktion_NodePlayerThreadPools.cpp.

Constructor & Destructor Documentation

◆ ThreadPoolRT()

tracktion::graph::ThreadPoolRT::ThreadPoolRT ( LockFreeMultiThreadedNodePlayer p)

Definition at line 179 of file tracktion_NodePlayerThreadPools.cpp.

Member Function Documentation

◆ clearThreads()

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

Subclasses should implement this to clear all the threads.

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

Definition at line 204 of file tracktion_NodePlayerThreadPools.cpp.

◆ createThreads()

void tracktion::graph::ThreadPoolRT::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 184 of file tracktion_NodePlayerThreadPools.cpp.

◆ signal()

void tracktion::graph::ThreadPoolRT::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 218 of file tracktion_NodePlayerThreadPools.cpp.

◆ signalAll()

void tracktion::graph::ThreadPoolRT::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 222 of file tracktion_NodePlayerThreadPools.cpp.

◆ signalOne()

void tracktion::graph::ThreadPoolRT::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 214 of file tracktion_NodePlayerThreadPools.cpp.

◆ wait()

void tracktion::graph::ThreadPoolRT::wait ( )

Definition at line 226 of file tracktion_NodePlayerThreadPools.cpp.

◆ waitForFinalNode()

void tracktion::graph::ThreadPoolRT::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 253 of file tracktion_NodePlayerThreadPools.cpp.


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