From 2a58bf980fd6f009158a894c7db35dcff5159f18 Mon Sep 17 00:00:00 2001 From: ed Date: Mon, 4 May 2020 10:20:48 +0100 Subject: [PATCH] Projucer: Fixed some issues flagged by tsan --- .../Source/Project/Modules/jucer_AvailableModulesList.h | 9 +++++++-- .../Projucer/Source/ProjectSaving/jucer_ProjectSaver.cpp | 5 ++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/extras/Projucer/Source/Project/Modules/jucer_AvailableModulesList.h b/extras/Projucer/Source/Project/Modules/jucer_AvailableModulesList.h index e26b8ececa..f9b536184e 100644 --- a/extras/Projucer/Source/Project/Modules/jucer_AvailableModulesList.h +++ b/extras/Projucer/Source/Project/Modules/jucer_AvailableModulesList.h @@ -21,7 +21,7 @@ #include "jucer_ModuleDescription.h" //============================================================================== -class AvailableModulesList +class AvailableModulesList : private AsyncUpdater { public: using ModuleIDAndFolder = std::pair; @@ -164,6 +164,11 @@ private: }; //============================================================================== + void handleAsyncUpdate() override + { + listeners.call ([this] (Listener& l) { l.availableModulesChanged (this); }); + } + std::unique_ptr createScannerJob (const Array& paths) { return std::make_unique (paths, [this] (ModuleIDAndFolderList scannedModulesList) @@ -173,7 +178,7 @@ private: modulesList.swap (scannedModulesList); } - listeners.call ([this] (Listener& l) { MessageManager::callAsync ([&] { l.availableModulesChanged (this); }); }); + triggerAsyncUpdate(); }); } diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectSaver.cpp b/extras/Projucer/Source/ProjectSaving/jucer_ProjectSaver.cpp index e4012f7f43..c37d0ed479 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectSaver.cpp +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectSaver.cpp @@ -805,7 +805,10 @@ void ProjectSaver::saveExporter (ProjectExporter& exporter, const OwnedArray