Robin Gareus
79bf025862
Previously the freewheel export thread directly called Session::butler_transport_work(). The butler thread may concurrently call the same function. This can lead double free or memory corruption (see below) Now export thread summons the butler and does nothing until it completed its work. ``` Export Thread: 3 XMLNode::~XMLNode 4 ARDOUR::AutomationList::snapshot_history 5 ARDOUR::AutomationList::start_write_pass 6 ARDOUR::Automatable::non_realtime_locate 7 ARDOUR::Route::non_realtime_locate 8 ARDOUR::Session::non_realtime_locate 9 ARDOUR::Session::butler_transport_work 10 ARDOUR::Session::process_export_fw Butler thread: 7 XMLNode::~XMLNode 8 ARDOUR::AutomationList::snapshot_history 9 ARDOUR::AutomationList::start_write_pass 10 ARDOUR::Automatable::non_realtime_locate 11 ARDOUR::Route::non_realtime_locate 12 ARDOUR::Session::non_realtime_locate 13 ARDOUR::Session::butler_transport_work 14 ARDOUR::Butler::thread_work 15 ARDOUR::Butler::_thread_work ``` |
||
---|---|---|
doc | ||
gtk2_ardour | ||
headless | ||
libs | ||
luasession | ||
msvc_extra_headers | ||
MSVCardour3 | ||
MSVCMixbus3 | ||
MSVCvst_scan | ||
nutemp | ||
session_utils | ||
share | ||
tools | ||
vst | ||
.dir-locals.el | ||
.gitattributes | ||
.gitignore | ||
ardour.1 | ||
COPYING | ||
instant.xml.sae | ||
msvc32-fixup.pl | ||
PACKAGER_README | ||
README | ||
README-GITHUB.txt | ||
system_config | ||
testfile.flac | ||
testfile.ogg | ||
TRANSLATORS | ||
waf | ||
wscript |
Please see the Ardour web site at https://ardour.org/ for all documentation.. For information on building ardour: https://ardour.org/development.html