prevent multiple concurrent plugin scans.
This commit is contained in:
@@ -144,6 +144,8 @@ class LIBARDOUR_API PluginManager : public boost::noncopyable {
|
||||
std::string get_ladspa_category (uint32_t id);
|
||||
std::vector<uint32_t> ladspa_plugin_whitelist;
|
||||
|
||||
Glib::Threads::Mutex _lock;
|
||||
|
||||
static PluginManager* _instance; // singleton
|
||||
PluginManager ();
|
||||
};
|
||||
|
||||
@@ -225,6 +225,12 @@ PluginManager::~PluginManager()
|
||||
void
|
||||
PluginManager::refresh (bool cache_only)
|
||||
{
|
||||
Glib::Threads::Mutex::Lock lm (_lock, Glib::Threads::TRY_LOCK);
|
||||
|
||||
if (!lm.locked()) {
|
||||
return;
|
||||
}
|
||||
|
||||
DEBUG_TRACE (DEBUG::PluginManager, "PluginManager::refresh\n");
|
||||
_cancel_scan = false;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user