Wait for the butler to be quiescent before starting
export of each range, rather than just the first one. Prevents clashes with both the butler and the export code doing track refills at the same time (may fix #4283). git-svn-id: svn://localhost/ardour2/branches/3.0@10307 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
77279f390d
commit
ebca0ae87d
@ -62,8 +62,6 @@ Session::pre_export ()
|
||||
{
|
||||
get_export_status (); // Init export_status
|
||||
|
||||
_butler->wait_until_finished ();
|
||||
|
||||
/* take everyone out of awrite to avoid disasters */
|
||||
|
||||
{
|
||||
@ -95,6 +93,7 @@ Session::pre_export ()
|
||||
return 0;
|
||||
}
|
||||
|
||||
/** Called for each range that is being exported */
|
||||
int
|
||||
Session::start_audio_export (framepos_t position, bool /* realtime */)
|
||||
{
|
||||
@ -102,6 +101,13 @@ Session::start_audio_export (framepos_t position, bool /* realtime */)
|
||||
pre_export ();
|
||||
}
|
||||
|
||||
/* We're about to call Track::seek, so the butler must have finished everything
|
||||
up otherwise it could be doing do_refill in its thread while we are doing
|
||||
it here.
|
||||
*/
|
||||
|
||||
_butler->wait_until_finished ();
|
||||
|
||||
/* get everyone to the right position */
|
||||
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user