diff options
author | Robin Gareus <robin@gareus.org> | 2019-03-17 17:35:10 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2019-03-17 17:35:10 +0100 |
commit | 66103be9f24c30c5dd80f36920cf5be6e44202ad (patch) | |
tree | 4ea05f2e48990bf02c219f25d19cabce10da6b38 /libs/ardour/session.cc | |
parent | 3fa3437c38519f313384f19261bb3c97caf31992 (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.cc | 5 |
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) { |