JUCE
|
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. More...
Public Member Functions | |
TimeSliceThread (const String &threadName) | |
Creates a TimeSliceThread. More... | |
~TimeSliceThread () override | |
Destructor. More... | |
void | addTimeSliceClient (TimeSliceClient *clientToAdd, int millisecondsBeforeStarting=0) |
Adds a client to the list. More... | |
void | 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. More... | |
void | removeTimeSliceClient (TimeSliceClient *clientToRemove) |
Removes a client from the list. More... | |
void | removeAllClients () |
Removes all the active and pending clients from the list. More... | |
int | getNumClients () const |
Returns the number of registered clients. More... | |
TimeSliceClient * | getClient (int index) const |
Returns one of the registered clients. More... | |
Public Member Functions inherited from Thread | |
Thread (const String &threadName, size_t threadStackSize=0) | |
Creates a thread. More... | |
virtual | ~Thread () |
Destructor. More... | |
virtual void | run ()=0 |
Must be implemented to perform the thread's actual code. More... | |
void | startThread () |
Starts the thread running. More... | |
void | startThread (int priority) |
Starts the thread with a given priority. More... | |
bool | stopThread (int timeOutMilliseconds) |
Attempts to stop the thread running. More... | |
bool | isThreadRunning () const |
Returns true if the thread is currently active. More... | |
void | signalThreadShouldExit () |
Sets a flag to tell the thread it should stop. More... | |
bool | threadShouldExit () const |
Checks whether the thread has been told to stop running. More... | |
bool | waitForThreadToExit (int timeOutMilliseconds) const |
Waits for the thread to stop. More... | |
void | addListener (Listener *) |
Add a listener to this thread which will receive a callback when signalThreadShouldExit was called on this thread. More... | |
void | removeListener (Listener *) |
Removes a listener added with addListener. More... | |
bool | setPriority (int priority) |
Changes the thread's priority. More... | |
void | setAffinityMask (uint32 affinityMask) |
Sets the affinity mask for the thread. More... | |
bool | wait (int timeOutMilliseconds) const |
Suspends the execution of this thread until either the specified timeout period has elapsed, or another thread calls the notify() method to wake it up. More... | |
void | notify () const |
Wakes up the thread. More... | |
ThreadID | getThreadId () const noexcept |
Returns the ID of this thread. More... | |
const String & | getThreadName () const noexcept |
Returns the name of the thread. More... | |
Additional Inherited Members | |
Public Types inherited from Thread | |
enum | { realtimeAudioPriority = -1 } |
Special realtime audio thread priority. More... | |
using | ThreadID = void * |
A value type used for thread IDs. More... | |
Static Public Member Functions inherited from Thread | |
static void | launch (std::function< void()> functionToRun) |
Invokes a lambda or function on its own thread. More... | |
static bool | currentThreadShouldExit () |
Checks whether the current thread has been told to stop running. More... | |
static bool | setCurrentThreadPriority (int priority) |
Changes the priority of the caller thread. More... | |
static void JUCE_CALLTYPE | setCurrentThreadAffinityMask (uint32 affinityMask) |
Changes the affinity mask for the caller thread. More... | |
static void JUCE_CALLTYPE | sleep (int milliseconds) |
Suspends the execution of the current thread until the specified timeout period has elapsed (note that this may not be exact). More... | |
static void JUCE_CALLTYPE | yield () |
Yields the current thread's CPU time-slot and allows a new thread to run. More... | |
static ThreadID JUCE_CALLTYPE | getCurrentThreadId () |
Returns an id that identifies the caller thread. More... | |
static Thread *JUCE_CALLTYPE | getCurrentThread () |
Finds the thread object that is currently running. More... | |
static void JUCE_CALLTYPE | setCurrentThreadName (const String &newThreadName) |
Changes the name of the caller thread. More... | |
static void | initialiseJUCE (void *jniEnv, void *jContext) |
Initialises the JUCE subsystem for projects not created by the Projucer. More... | |
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.
|
explicit |
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 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).
void 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 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.
void 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.
int TimeSliceThread::getNumClients | ( | ) | const |
Returns the number of registered clients.
TimeSliceClient* TimeSliceThread::getClient | ( | int | index | ) | const |
Returns one of the registered clients.