summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/ardour/session_transport.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc
index b9e8714d17..4a81e0e798 100644
--- a/libs/ardour/session_transport.cc
+++ b/libs/ardour/session_transport.cc
@@ -584,9 +584,24 @@ Session::non_realtime_locate ()
{
boost::shared_ptr<RouteList> rl = routes.reader();
+
+ restart:
+ const framepos_t tf = _transport_frame;
+
+ cerr << "\n\n >>> START Non-RT locate on routes to " << tf << "\n\n";
+
for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
(*i)->non_realtime_locate (_transport_frame);
+ if (tf != _transport_frame) {
+ /* new locate request arrived while processing
+ this one. start over.
+ */
+ cerr << "\n\n\n\n RESTART LOCATE @ " << _transport_frame << endl;
+ goto restart;
+ }
}
+
+ cerr << "\n\n <<< DONE Non-RT locate on routes\n\n";
}
{
VCAList v = _vca_manager->vcas ();