summaryrefslogtreecommitdiff
path: root/libs/ardour/butler.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-07-05 01:13:03 +0000
committerCarl Hetherington <carl@carlh.net>2010-07-05 01:13:03 +0000
commitdc44037a514f7ccee9d96525d6e8873004fc63e2 (patch)
treecbba11396384c2fe56355731b7c0021eab29a665 /libs/ardour/butler.cc
parente4c6b5f01a24ae21b80943f1b46679751f7ac25b (diff)
Forward port no-process-after-export fix from 2.X revs 7357 and 7361.
git-svn-id: svn://localhost/ardour2/branches/3.0@7368 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/butler.cc')
-rw-r--r--libs/ardour/butler.cc17
1 files changed, 10 insertions, 7 deletions
diff --git a/libs/ardour/butler.cc b/libs/ardour/butler.cc
index 3b717942f3..a77c11b983 100644
--- a/libs/ardour/butler.cc
+++ b/libs/ardour/butler.cc
@@ -216,14 +216,17 @@ Butler::thread_work ()
}
}
- if (transport_work_requested()) {
- _session.butler_transport_work ();
- }
- disk_work_outstanding = false;
bytes = 0;
compute_io = true;
+restart:
+ disk_work_outstanding = false;
+
+ if (transport_work_requested()) {
+ _session.butler_transport_work ();
+ }
+
begin = get_microseconds();
boost::shared_ptr<RouteList> rl = _session.get_routes();
@@ -273,7 +276,7 @@ Butler::thread_work ()
}
if (!err && transport_work_requested()) {
- continue;
+ goto restart;
}
if (compute_io) {
@@ -332,7 +335,7 @@ Butler::thread_work ()
}
if (!err && transport_work_requested()) {
- continue;
+ goto restart;
}
if (compute_io) {
@@ -358,7 +361,7 @@ Butler::thread_work ()
// cerr << "AFTER " << (*i)->name() << ": pb = " << (*i)->playback_buffer_load() << " cp = " << (*i)->capture_buffer_load() << endl;
// }
- continue;
+ goto restart;
}
paused.signal();