fix possible deadlock replacing processor state.
This commit is contained in:
parent
1af8b564b4
commit
8566d898b5
|
@ -2826,9 +2826,14 @@ 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
|
||||
* not in new_order, it will be deleted and ~IO takes
|
||||
* a process lock.
|
||||
*/
|
||||
_processors = new_order;
|
||||
Glib::Threads::Mutex::Lock lx (AudioEngine::instance()->process_lock ());
|
||||
|
||||
if (must_configure) {
|
||||
configure_processors_unlocked (0, &lm);
|
||||
|
|
Loading…
Reference in New Issue
Block a user