TimeSliceThread Class Reference
juce_core » threads

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...

Inheritance diagram for TimeSliceThread:

## 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...

## Detailed Description

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.

See also
  TimeSliceClient, Thread

## Constructor & Destructor Documentation

## TimeSliceThread()

TimeSliceThread::TimeSliceThread | ( | const String & | threadName | ) |

explicit

Creates a TimeSliceThread.

When first created, the thread is not running. Use the startThread() method to start it.

## ~TimeSliceThread()

TimeSliceThread::~TimeSliceThread | ( |  | ) |

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).

## Member Function Documentation

## addTimeSliceClient()

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).

## moveToFrontOfQueue()

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.

## removeTimeSliceClient()

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.

## removeAllClients()

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.

## getNumClients()

int TimeSliceThread::getNumClients | ( |  | ) | const

Returns the number of registered clients.

## getClient()

TimeSliceClient* TimeSliceThread::getClient | ( | int | index | ) | const

Returns one of the registered clients.

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

- juce_TimeSliceThread.h