summaryrefslogtreecommitdiff
path: root/libs/ardour/session.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-03-17 17:35:10 +0100
committerRobin Gareus <robin@gareus.org>2019-03-17 17:35:10 +0100
commit66103be9f24c30c5dd80f36920cf5be6e44202ad (patch)
tree4ea05f2e48990bf02c219f25d19cabce10da6b38 /libs/ardour/session.cc
parent3fa3437c38519f313384f19261bb3c97caf31992 (diff)
Speed up session deletion
No need to reconfigure routes due to removal of monitor or aux send/return. The processors will be removed with the route.
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r--libs/ardour/session.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 89a214fdc2..afdca9b683 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -1174,7 +1174,7 @@ Session::remove_monitor_section ()
*/
cancel_audition ();
- {
+ if (!deletion_in_progress ()) {
/* Hold process lock while doing this so that we don't hear bits and
* pieces of audio as we work on each route.
*/
@@ -3769,7 +3769,8 @@ Session::remove_routes (boost::shared_ptr<RouteList> routes_to_remove)
(*iter)->output()->disconnect (0);
/* if the route had internal sends sending to it, remove them */
- if ((*iter)->internal_return()) {
+
+ if (!deletion_in_progress () && (*iter)->internal_return()) {
boost::shared_ptr<RouteList> r = routes.reader ();
for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {