diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc index 09e957983e..2f5ac62651 100644 --- a/libs/ardour/session_transport.cc +++ b/libs/ardour/session_transport.cc @@ -1152,14 +1152,17 @@ Session::butler_transport_work (bool have_process_lock) if (!have_process_lock) { lx.acquire (); } + std::shared_ptr tl = io_tasklist (); for (auto const& i : *r) { std::shared_ptr tr = std::dynamic_pointer_cast (i); if (tr) { tr->adjust_playback_buffering (); /* and refill those buffers ... */ } - i->non_realtime_locate (_transport_sample); + tl->push_back ([this, i]() { i->non_realtime_locate (_transport_sample); }); } + tl->process (); + VCAList v = _vca_manager->vcas (); for (VCAList::const_iterator i = v.begin(); i != v.end(); ++i) { (*i)->non_realtime_locate (_transport_sample);