From: Paul Davis Date: Tue, 4 Jul 2017 16:14:33 +0000 (-0400) Subject: restart non-RT locate if a new request has been processed by RT context since we... X-Git-Tag: 6.0-pre0~79 X-Git-Url: https://main.carlh.net/gitweb/?p=ardour.git;a=commitdiff_plain;h=6fb212a6f64e88a8096d90512d93b18dd6745dea restart non-RT locate if a new request has been processed by RT context since we started --- 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 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 ();