mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-23 23:17:46 +01:00
fix possible deadlock on session-close
This commit is contained in:
parent
b6f51b2497
commit
b0147a7767
1 changed files with 10 additions and 3 deletions
|
|
@ -3101,14 +3101,21 @@ Route::remove_aux_or_listen (boost::shared_ptr<Route> route)
|
|||
|
||||
if (d && d->target_route() == route) {
|
||||
rl.release ();
|
||||
remove_processor (*x, &err, false);
|
||||
if (remove_processor (*x, &err, false) > 0) {
|
||||
rl.acquire ();
|
||||
continue;
|
||||
}
|
||||
rl.acquire ();
|
||||
|
||||
/* list could have been demolished while we dropped the lock
|
||||
so start over.
|
||||
*/
|
||||
|
||||
goto again;
|
||||
if (_session.engine().connected()) {
|
||||
/* i/o processors cannot be removed if the engine is not running
|
||||
* so don't live-loop in case the engine is N/A or dies
|
||||
*/
|
||||
goto again;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue