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:
parent
953b8ac99f
commit
7bdf4e12ba
|
@ -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);
|
Glib::Threads::RWLock::WriterLock lm (_processor_lock);
|
||||||
/* re-assign _processors w/o process-lock.
|
/* re-assign _processors w/o process-lock.
|
||||||
* if there's an IO-processor present in _processors but
|
* if there's an IO-processor present in _processors but
|
||||||
|
@ -2822,7 +2823,6 @@ Route::set_processor_state (const XMLNode& node)
|
||||||
* a process lock.
|
* a process lock.
|
||||||
*/
|
*/
|
||||||
_processors = new_order;
|
_processors = new_order;
|
||||||
Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ());
|
|
||||||
|
|
||||||
if (must_configure) {
|
if (must_configure) {
|
||||||
configure_processors_unlocked (0, &lm);
|
configure_processors_unlocked (0, &lm);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user