Mirror of Ardour Source Code
Find a file
Robin Gareus 4db1c02bd1
Fix crashes when rippling many regions
Region positions were updated in the GUI, before the playlist
was catching up.

The butler thread reads a region using the region's new position,
but the playlist's old range.


Thread 1 (GUI)
```
#22 ARDOUR::Playlist::notify_layering_changed()
#26 ARDOUR::AudioPlaylist::region_changed
#27 ARDOUR::Playlist::region_changed_proxy
#35 ARDOUR::Region::send_change
#36 ARDOUR::Region::set_position
#37 RegionRippleDrag::remove_unselected_from_views
#38 RegionRippleDrag::finished
```

LayeringChanged() also triggers DiskIOProcessor::playlist_modified
which schedules a pending-override and summons the butler.
Note that when moving only a few regions the butler starts after all
updates have been completed.

Butler thread:
```
#4  ARDOUR::AudioRegion::read_at
#5  ARDOUR::AudioPlaylist::read
#6  ARDOUR::DiskReader::audio_read
#7  ARDOUR::DiskReader::overwrite_existing_audio
#8  ARDOUR::DiskReader::overwrite_existing_buffers
#9  ARDOUR::Track::overwrite_existing_buffers
#10 ARDOUR::Session::non_realtime_overwrite
```

Region read fails:
```
 libs/ardour/audioregion.cc:503  assert (position >= _position);
(gdb) p position
$1 = 1312000
(gdb) p _position
$2 = {<PBD::PropertyTemplate<long>> = {_have_old = true,
    _current = 1336000, _old = 1312000} }
```
2021-05-07 21:56:09 +02:00
doc Clarify source-tree doc: libsmf is used inside libevoral 2020-04-28 21:27:16 +02:00
gtk2_ardour Fix crashes when rippling many regions 2021-05-07 21:56:09 +02:00
headless use Session::request_roll() instead of request_transport_speed (1.0, ...) 2021-04-19 16:14:08 -06:00
libs Add missing Lua binding (see also 48e5607f7c) 2021-05-07 21:56:09 +02:00
luasession Consistency: replace "x-run" with "xrun" (1/2) 2021-02-26 22:22:08 +01:00
msvc_extra_headers Emulate exp2f() for older MS compilers where it wasn't available 2021-05-05 17:50:41 +01:00
MSVCardour3 Add/remove source(s) in our MSVC project (gtk2_ardour) 2021-04-17 11:22:11 +01:00
MSVCMixbus3 Initial changes needed for building Mixbus (with MSVC) as version 5 2018-09-10 07:14:59 +01:00
MSVCvst_scan Correct a typo in my MSVC project file (vst3_scan) 2020-10-16 11:30:00 +01:00
nutemp additional changes to follow library name change from timecode -> temporal 2017-09-25 12:13:54 -04:00
session_utils Bail out if export cannot be started 2020-12-08 01:10:00 +01:00
share Add Lua bindings to modify region gain curve 2021-05-04 18:18:04 +02:00
tools Update split-benchmark script with new transport API 2021-05-07 21:56:09 +02:00
vst fix vamp path: 2016-06-25 00:44:04 +02:00
.dir-locals.el Only use .dir-locals.el to set tab indentation (or not, for python). 2011-04-06 16:33:43 +00:00
.gitattributes Add a Readme pertaining to GH release tarballs 2017-04-22 16:04:35 +02:00
.gitignore Ignore generaed translation files 2020-10-18 17:45:32 +02:00
ardour.1 Update man-page 2020-07-06 21:36:12 +02:00
COPYING update GPL (formatting and update FSF address) 2014-10-26 02:24:35 +01:00
instant.xml.sae most of the 2.X->3.0 commit (up to rev 4299) except for gtk2_ardour/editor_canvas.cc; builds and runs and does a few specific things but expect it to be buggy for a while yet 2008-12-12 14:43:24 +00:00
msvc32-fixup.pl Build 'ardour-vst3-scanner.exe' with MSVC 2020-09-22 12:15:09 +01:00
PACKAGER_README fixes for various consistency/settings issues in monitor section; minor edit to PACKAGER_README 2010-03-17 16:01:58 +00:00
README Directly use HTTPS 2021-03-23 23:27:45 +01:00
README-GITHUB.txt Add a Readme pertaining to GH release tarballs 2017-04-22 16:04:35 +02:00
system_config Empty system_config (pre-seed XML nodes, use built-in settings) 2017-03-02 19:37:36 +01:00
testfile.flac ogg/flac support bits and pieces; fix up MIDI note dragging and front-edge trims; BROKEN IN PERCUSSIVE MODE FOR NOW 2009-10-06 22:07:10 +00:00
testfile.ogg ogg/flac support bits and pieces; fix up MIDI note dragging and front-edge trims; BROKEN IN PERCUSSIVE MODE FOR NOW 2009-10-06 22:07:10 +00:00
TRANSLATORS add text to TRANSLATORS file explaining how contextual translation msgids work and should be translated 2020-05-20 14:40:10 -06:00
waf Update waf to v2.0.19 2020-01-25 04:07:41 +01:00
wscript Correctly detect glib volatile atomic 2021-03-30 15:29:53 +02:00

Please see the Ardour web site at https://ardour.org/ for all documentation..

For information on building ardour: 
      
     https://ardour.org/development.html