summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2015-09-10 11:35:25 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2015-09-10 11:35:57 -0400
commit0ef8175b5a74bb6748900459efe086ab8eaf16f6 (patch)
tree0aeb724e679a982478f60008fd26e0618cf2b104
parentcb85080ca8e8a1f23cd9017587fe48a66c442274 (diff)
when removing routes, don't do potentially expensive work once for each route.
We can update solo state and tell interested parties about the removal once the actual removal is done
-rw-r--r--libs/ardour/session.cc6
1 files changed, 2 insertions, 4 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 94a12ca504..c3eca166df 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -3376,8 +3376,6 @@ Session::remove_routes (boost::shared_ptr<RouteList> routes_to_remove)
_monitor_out.reset ();
}
- update_route_solo_state ();
-
// We need to disconnect the route's inputs and outputs
(*iter)->input()->disconnect (0);
@@ -3408,14 +3406,14 @@ Session::remove_routes (boost::shared_ptr<RouteList> routes_to_remove)
_step_editors--;
}
}
-
- RouteAddedOrRemoved (false); /* EMIT SIGNAL */
}
/* writer goes out of scope, forces route list update */
} // end of RCU Writer scope
+ update_route_solo_state ();
+ RouteAddedOrRemoved (false); /* EMIT SIGNAL */
update_latency_compensation ();
set_dirty();