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().
This commit is contained in:
Robin Gareus 2016-08-24 17:21:43 +02:00
parent 953b8ac99f
commit 7bdf4e12ba

View File

@ -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);