diff options
author | Robin Gareus <robin@gareus.org> | 2015-07-16 19:49:55 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-07-16 19:49:55 +0200 |
commit | 700c7b225f992dbfe31e714b321d4a8ffb482bcd (patch) | |
tree | 27c5a3a4bcc2f4c970cccfa076cd09e178929498 /libs/ardour/plugin_manager.cc | |
parent | 87b89a605f0c4e5fcabf9061d1a13c9caa65a824 (diff) |
prevent multiple concurrent plugin scans.
Diffstat (limited to 'libs/ardour/plugin_manager.cc')
-rw-r--r-- | libs/ardour/plugin_manager.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libs/ardour/plugin_manager.cc b/libs/ardour/plugin_manager.cc index 2b84c22fe7..a9dd9e48b3 100644 --- a/libs/ardour/plugin_manager.cc +++ b/libs/ardour/plugin_manager.cc @@ -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; |