summaryrefslogtreecommitdiff
path: root/libs/ardour/plugin_manager.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-07-16 19:49:55 +0200
committerRobin Gareus <robin@gareus.org>2015-07-16 19:49:55 +0200
commit700c7b225f992dbfe31e714b321d4a8ffb482bcd (patch)
tree27c5a3a4bcc2f4c970cccfa076cd09e178929498 /libs/ardour/plugin_manager.cc
parent87b89a605f0c4e5fcabf9061d1a13c9caa65a824 (diff)
prevent multiple concurrent plugin scans.
Diffstat (limited to 'libs/ardour/plugin_manager.cc')
-rw-r--r--libs/ardour/plugin_manager.cc6
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;