diff options
author | Robin Gareus <robin@gareus.org> | 2016-08-24 17:21:43 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-08-24 17:21:43 +0200 |
commit | 7bdf4e12ba13a7d49a4b83c7f0afa5109556d20b (patch) | |
tree | 20924703f179b155d1c3cd52f3baf2617bc2e6ad /libs/ardour/route.cc | |
parent | 953b8ac99fdaf6d1ffc3395701ef37824ab75d91 (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.cc | 2 |
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); |