summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-08-24 17:21:43 +0200
committerRobin Gareus <robin@gareus.org>2016-08-24 17:21:43 +0200
commit7bdf4e12ba13a7d49a4b83c7f0afa5109556d20b (patch)
tree20924703f179b155d1c3cd52f3baf2617bc2e6ad /libs/ardour/route.cc
parent953b8ac99fdaf6d1ffc3395701ef37824ab75d91 (diff)
Take process-lock before processor-lock
This [hopefully] fixes jack1 zombification on session-load with large plugin-states. Previously it was possible to block Route::process_output_buffers().
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r--libs/ardour/route.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 8efe1315bc..33a6c13080 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -2815,6 +2815,7 @@ Route::set_processor_state (const XMLNode& node)
}
{
+ Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ());
Glib::Threads::RWLock::WriterLock lm (_processor_lock);
/* re-assign _processors w/o process-lock.
* if there's an IO-processor present in _processors but
@@ -2822,7 +2823,6 @@ Route::set_processor_state (const XMLNode& node)
* a process lock.
*/
_processors = new_order;
- Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ());
if (must_configure) {
configure_processors_unlocked (0, &lm);