summaryrefslogtreecommitdiff
path: root/libs/ardour/session_process.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2020-04-18 23:54:24 +0200
committerRobin Gareus <robin@gareus.org>2020-04-18 23:54:24 +0200
commit9875a958295353aabba73fb05f862c4f92ebb219 (patch)
treef4cb3e16bd776483c4f90f0d964d288a797ddd52 /libs/ardour/session_process.cc
parentb7c7c02680fc89f58af46498b5d6459b30a07b2d (diff)
RAII collect processor-change signals6.0-rc1
Diffstat (limited to 'libs/ardour/session_process.cc')
-rw-r--r--libs/ardour/session_process.cc18
1 files changed, 11 insertions, 7 deletions
diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc
index f5613d3af4..828299d8e0 100644
--- a/libs/ardour/session_process.cc
+++ b/libs/ardour/session_process.cc
@@ -102,14 +102,17 @@ Session::process (pframes_t nframes)
* Route::process_output_buffers() but various functions
* callig it hold a _processor_lock reader-lock
*/
- boost::shared_ptr<RouteList> r = routes.reader ();
bool one_or_more_routes_declicking = false;
- for (RouteList::const_iterator i = r->begin(); i != r->end(); ++i) {
- if ((*i)->apply_processor_changes_rt()) {
- _rt_emit_pending = true;
- }
- if ((*i)->declick_in_progress()) {
- one_or_more_routes_declicking = true;
+ {
+ ProcessorChangeBlocker pcb (this);
+ boost::shared_ptr<RouteList> r = routes.reader ();
+ for (RouteList::const_iterator i = r->begin(); i != r->end(); ++i) {
+ if ((*i)->apply_processor_changes_rt()) {
+ _rt_emit_pending = true;
+ }
+ if ((*i)->declick_in_progress()) {
+ one_or_more_routes_declicking = true;
+ }
}
}
@@ -1051,6 +1054,7 @@ Session::emit_route_signals ()
{
// TODO use RAII to allow using these signals in other places
BatchUpdateStart(); /* EMIT SIGNAL */
+ ProcessorChangeBlocker pcb (this);
boost::shared_ptr<RouteList> r = routes.reader ();
for (RouteList::const_iterator ci = r->begin(); ci != r->end(); ++ci) {
(*ci)->emit_pending_signals ();