|
LMMS
|
#include <juce_TimeSliceThread.h>
Private Member Functions | |
| TimeSliceClient * | getNextClient (int index) const |
Private Attributes | |
| CriticalSection | callbackLock |
| CriticalSection | listLock |
| Array< TimeSliceClient * > | clients |
| TimeSliceClient * | clientBeingCalled = nullptr |
Additional Inherited Members | |
| Public Types inherited from juce::Thread | |
| enum | { realtimeAudioPriority = -1 } |
| using | ThreadID = void* |
| Static Public Member Functions inherited from juce::Thread | |
| static void | launch (std::function< void()> functionToRun) |
| static bool | currentThreadShouldExit () |
| static bool | setCurrentThreadPriority (int priority) |
| static void JUCE_CALLTYPE | setCurrentThreadAffinityMask (uint32 affinityMask) |
| static void JUCE_CALLTYPE | sleep (int milliseconds) |
| static void JUCE_CALLTYPE | yield () |
| static ThreadID JUCE_CALLTYPE | getCurrentThreadId () |
| static Thread *JUCE_CALLTYPE | getCurrentThread () |
| static void JUCE_CALLTYPE | setCurrentThreadName (const String &newThreadName) |
A thread that keeps a list of clients, and calls each one in turn, giving them all a chance to run some sort of short task.
@tags{Core}
Creates a TimeSliceThread.
When first created, the thread is not running. Use the startThread() method to start it.
|
override |
Destructor.
Deleting a Thread object that is running will only give the thread a brief opportunity to stop itself cleanly, so it's recommended that you should always call stopThread() with a decent timeout before deleting, to avoid the thread being forcibly killed (which is a Bad Thing).
| void juce::TimeSliceThread::addTimeSliceClient | ( | TimeSliceClient * | clientToAdd, |
| int | millisecondsBeforeStarting = 0 ) |
Adds a client to the list. The client's callbacks will start after the number of milliseconds specified by millisecondsBeforeStarting (and this may happen before this method has returned).
| TimeSliceClient * juce::TimeSliceThread::getClient | ( | int | index | ) | const |
Returns one of the registered clients.
|
private |
| int juce::TimeSliceThread::getNumClients | ( | ) | const |
Returns the number of registered clients.
| void juce::TimeSliceThread::moveToFrontOfQueue | ( | TimeSliceClient * | clientToMove | ) |
If the given client is waiting in the queue, it will be moved to the front and given a time-slice as soon as possible. If the specified client has not been added, nothing will happen.
| void juce::TimeSliceThread::removeAllClients | ( | ) |
Removes all the active and pending clients from the list. This method will make sure that all callbacks to clients have finished before the method returns.
| void juce::TimeSliceThread::removeTimeSliceClient | ( | TimeSliceClient * | clientToRemove | ) |
Removes a client from the list. This method will make sure that all callbacks to the client have completely finished before the method returns.
|
overridevirtual |
Must be implemented to perform the thread's actual code.
Remember that the thread must regularly check the threadShouldExit() method whilst running, and if this returns true it should return from the run() method as soon as possible to avoid being forcibly killed.
Implements juce::Thread.
|
private |
|
private |
|
private |
|
private |