mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-09 00:04:56 +01:00
do not clear any PostTransportWork flags in butler thread
doing this was causing the TFSM to get stuck in "WaitingForButler"
This commit is contained in:
parent
a765e52b47
commit
61e7f3176b
1 changed files with 13 additions and 7 deletions
|
|
@ -722,7 +722,18 @@ Session::butler_completed_transport_work ()
|
||||||
start_after_butler_done_msg = true;
|
start_after_butler_done_msg = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ptw = PostTransportWork (ptw & ~(PostTransportAdjustPlaybackBuffering|PostTransportAdjustCaptureBuffering|PostTransportOverWrite|PostTransportReverse|PostTransportRoll));
|
/* the butler finished its work so clear all PostTransportWork flags
|
||||||
|
* reflecting things it may have done.
|
||||||
|
*/
|
||||||
|
|
||||||
|
ptw = PostTransportWork (ptw & ~(PostTransportAdjustPlaybackBuffering|
|
||||||
|
PostTransportAdjustCaptureBuffering|
|
||||||
|
PostTransportOverWrite|
|
||||||
|
PostTransportReverse|
|
||||||
|
PostTransportRoll|
|
||||||
|
PostTransportAbort|
|
||||||
|
PostTransportStop|
|
||||||
|
PostTransportClearSubstate));
|
||||||
set_post_transport_work (ptw);
|
set_post_transport_work (ptw);
|
||||||
|
|
||||||
set_next_event ();
|
set_next_event ();
|
||||||
|
|
@ -1239,7 +1250,7 @@ Session::butler_transport_work ()
|
||||||
|
|
||||||
g_atomic_int_dec_and_test (&_butler->should_do_transport_work);
|
g_atomic_int_dec_and_test (&_butler->should_do_transport_work);
|
||||||
|
|
||||||
DEBUG_TRACE (DEBUG::Transport, string_compose (X_("Butler transport work all done after %1 usecs @ %2 trw = %3\n"), g_get_monotonic_time() - before, _transport_sample, _butler->transport_work_requested()));
|
DEBUG_TRACE (DEBUG::Transport, string_compose (X_("Butler transport work all done after %1 usecs @ %2 ptw %3 trw = %4\n"), g_get_monotonic_time() - before, _transport_sample, enum_2_string (post_transport_work()), _butler->transport_work_requested()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -1513,8 +1524,6 @@ Session::non_realtime_stop (bool abort, int on_entry, bool& finished)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* this for() block can be put inside the previous if() and has the effect of ... ??? what */
|
|
||||||
|
|
||||||
{
|
{
|
||||||
DEBUG_TRACE (DEBUG::Transport, X_("Butler PTW: locate\n"));
|
DEBUG_TRACE (DEBUG::Transport, X_("Butler PTW: locate\n"));
|
||||||
for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
|
for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
|
||||||
|
|
@ -1584,9 +1593,6 @@ Session::non_realtime_stop (bool abort, int on_entry, bool& finished)
|
||||||
DEBUG_TRACE (DEBUG::Transport, string_compose ("send TSC with speed = %1\n", _transport_speed));
|
DEBUG_TRACE (DEBUG::Transport, string_compose ("send TSC with speed = %1\n", _transport_speed));
|
||||||
TransportStateChange (); /* EMIT SIGNAL */
|
TransportStateChange (); /* EMIT SIGNAL */
|
||||||
AutomationWatch::instance().transport_stop_automation_watches (_transport_sample);
|
AutomationWatch::instance().transport_stop_automation_watches (_transport_sample);
|
||||||
|
|
||||||
ptw = PostTransportWork (ptw & ~(PostTransportAbort|PostTransportStop|PostTransportClearSubstate));
|
|
||||||
set_post_transport_work (ptw);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue