42 clients.addIfNotAlreadyThere (
client);
53 if (clientBeingCalled ==
client)
60 clients.removeFirstMatchingValue (
client);
64 clients.removeFirstMatchingValue (
client);
83 if (clients.contains (
client))
93 return clients.size();
105 return std::any_of (clients.begin(), clients.end(), [=] (
auto*
registered) { return registered == c; });
114 for (
int i = clients.size(); --i >= 0;)
116 auto* c = clients.getUnchecked ((i + index) % clients.size());
118 if (c !=
nullptr && (
client ==
nullptr || c->nextCallTime <
soonest))
166 clientBeingCalled = getNextClient (index);
169 if (clientBeingCalled !=
nullptr)
178 clients.removeFirstMatchingValue (clientBeingCalled);
180 clientBeingCalled =
nullptr;
static RelativeTime milliseconds(int milliseconds) noexcept
bool wait(double timeOutMilliseconds) const
bool threadShouldExit() const
bool stopThread(int timeOutMilliseconds)
virtual int useTimeSlice()=0
int getNumClients() const
void removeTimeSliceClient(TimeSliceClient *clientToRemove)
void addTimeSliceClient(TimeSliceClient *clientToAdd, int millisecondsBeforeStarting=0)
~TimeSliceThread() override
TimeSliceClient * getClient(int index) const
void moveToFrontOfQueue(TimeSliceClient *clientToMove)
bool contains(const TimeSliceClient *) const
TimeSliceThread(const String &threadName)
static Time JUCE_CALLTYPE getCurrentTime() noexcept