diff --git a/modules/juce_core/threads/juce_TimeSliceThread.cpp b/modules/juce_core/threads/juce_TimeSliceThread.cpp index 261fe85973..67a773c29c 100644 --- a/modules/juce_core/threads/juce_TimeSliceThread.cpp +++ b/modules/juce_core/threads/juce_TimeSliceThread.cpp @@ -89,6 +89,7 @@ void TimeSliceThread::moveToFrontOfQueue (TimeSliceClient* client) int TimeSliceThread::getNumClients() const { + const ScopedLock sl (listLock); return clients.size(); } @@ -98,6 +99,12 @@ TimeSliceClient* TimeSliceThread::getClient (const int i) const return clients[i]; } +bool TimeSliceThread::contains (const TimeSliceClient* c) const +{ + const ScopedLock sl (listLock); + return std::any_of (clients.begin(), clients.end(), [=] (auto* registered) { return registered == c; }); +} + //============================================================================== TimeSliceClient* TimeSliceThread::getNextClient (int index) const { diff --git a/modules/juce_core/threads/juce_TimeSliceThread.h b/modules/juce_core/threads/juce_TimeSliceThread.h index fc4009adba..e4986481fa 100644 --- a/modules/juce_core/threads/juce_TimeSliceThread.h +++ b/modules/juce_core/threads/juce_TimeSliceThread.h @@ -131,6 +131,9 @@ public: /** Returns one of the registered clients. */ TimeSliceClient* getClient (int index) const; + /** Returns true if the client is currently registered. */ + bool contains (const TimeSliceClient*) const; + //============================================================================== #ifndef DOXYGEN void run() override;