From 40d6a063afc236412e23823049f3e7ab723caf72 Mon Sep 17 00:00:00 2001 From: reuk Date: Thu, 21 Apr 2022 16:28:46 +0100 Subject: [PATCH] AudioPluginHost: Speed up out-of-process scanning --- extras/AudioPluginHost/Source/HostStartup.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/extras/AudioPluginHost/Source/HostStartup.cpp b/extras/AudioPluginHost/Source/HostStartup.cpp index 8d0561742e..0b19c1030b 100644 --- a/extras/AudioPluginHost/Source/HostStartup.cpp +++ b/extras/AudioPluginHost/Source/HostStartup.cpp @@ -28,6 +28,11 @@ class PluginScannerSubprocess : private ChildProcessWorker, private AsyncUpdater { public: + PluginScannerSubprocess() + { + formatManager.addDefaultFormats(); + } + using ChildProcessWorker::initialiseFromCommandLine; private: @@ -77,9 +82,6 @@ private: bool doScan (const MemoryBlock& block) { - AudioPluginFormatManager formatManager; - formatManager.addDefaultFormats(); - MemoryInputStream stream { block, false }; const auto formatName = stream.readString(); const auto identifier = stream.readString(); @@ -123,6 +125,10 @@ private: std::mutex mutex; std::queue pendingBlocks; + + // After construction, this will only be accessed by doScan so there's no need + // to worry about synchronisation. + AudioPluginFormatManager formatManager; }; //==============================================================================