diff --git a/modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp b/modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp index a2ff14f7da..6d4602b1da 100644 --- a/modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp +++ b/modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp @@ -399,7 +399,7 @@ private: String pluginBeingScanned; double progress; int numThreads; - bool allowAsync, finished; + bool allowAsync, finished, timerReentrancyCheck = false; std::unique_ptr pool; static void startScanCallback (int result, AlertWindow* alert, Scanner* scanner) @@ -518,6 +518,11 @@ private: void timerCallback() override { + if (timerReentrancyCheck) + return; + + const ScopedValueSetter setter (timerReentrancyCheck, true); + if (pool == nullptr) { if (doNextScan())