From 474e6d73a47f60de872fbe6cedc682ce65df4bd9 Mon Sep 17 00:00:00 2001 From: reuk Date: Mon, 29 Nov 2021 13:00:09 +0000 Subject: [PATCH] Projucer: Fix potential order-of-destruction bug in AvailableModulesList When the AvailableModulesList is destroyed, it will wait for the current module scanning job (running on a background thread) to complete. This job will try to take the AvailableModulesList::lock when it completes, so the lock must outlive the background thread. --- .../Source/Project/Modules/jucer_AvailableModulesList.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extras/Projucer/Source/Project/Modules/jucer_AvailableModulesList.h b/extras/Projucer/Source/Project/Modules/jucer_AvailableModulesList.h index 35355c0f72..6a43baded2 100644 --- a/extras/Projucer/Source/Project/Modules/jucer_AvailableModulesList.h +++ b/extras/Projucer/Source/Project/Modules/jucer_AvailableModulesList.h @@ -169,10 +169,10 @@ private: } //============================================================================== - std::future scanner; ModuleIDAndFolderList modulesList; ListenerList listeners; CriticalSection lock; + std::future scanner; //============================================================================== JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AvailableModulesList)