Work around a race condition
This covers a race condition in session transport that when synced to an external engine it sometimes occurs that at the end of ::realtime_stop() ::transport_stopped_or_stopping() returns false when ::setup_rec_box() is called. In this case the rec boxes are not erased when the recoding transport is stopped. This fixes this behavior about the remaining rec boxes, however the race condition remains. The race condition is reported in #8104. It should be considered reverting this commit once the race condition is fixed.
This commit is contained in:
parent
52ae134efb
commit
bff9c9a5a1
@ -196,7 +196,8 @@ AudioStreamView::setup_rec_box ()
|
||||
{
|
||||
//cerr << _trackview.name() << " streamview SRB region_views.size() = " << region_views.size() << endl;
|
||||
|
||||
if (!_trackview.session()->transport_stopped_or_stopping()) {
|
||||
if (!_trackview.session()->transport_stopped_or_stopping() &&
|
||||
(_trackview.session()->transport_rolling() || _trackview.session()->get_record_enabled())) {
|
||||
|
||||
// cerr << "\trolling\n";
|
||||
|
||||
|
@ -455,7 +455,8 @@ MidiStreamView::setup_rec_box ()
|
||||
{
|
||||
// cerr << _trackview.name() << " streamview SRB\n";
|
||||
|
||||
if (!_trackview.session()->transport_stopped_or_stopping()) {
|
||||
if (!_trackview.session()->transport_stopped_or_stopping() &&
|
||||
(_trackview.session()->transport_rolling() || _trackview.session()->get_record_enabled())) {
|
||||
|
||||
if (!rec_active &&
|
||||
_trackview.session()->record_status() == Session::Recording &&
|
||||
|
Loading…
Reference in New Issue
Block a user