13
0
Go to file
Robin Gareus 6069c870f8
Fix recursive locks during undo/redo due to state save
undo may restore locations, which may trigger a state-save.
This can result in a deadlock:

Location::set_state () -> Locations::get_state()
both acquire a the same lock:

#2  0x000055a8421836d0 in Glib::Threads::Mutex::Lock::Lock(Glib::Threads::Mutex&) (this=0x7ffe38dcad40, mutex=...) at /usr/include/glibmm-2.4/glibmm/threads.h:687
#3  0x00007fc637731e9c in ARDOUR::Locations::get_state() (this=0x55a8466d4740) at ../libs/ardour/location.cc:1075
#4  0x00007fc637bf14b7 in ARDOUR::Session::state(bool, ARDOUR::Session::snapshot_t, bool)
   (this=0x55a846d0f050, save_template=false, snapshot_type=ARDOUR::Session::NormalSave, only_used_assets=false) at ../libs/ardour/session_state.cc:1406
#5  0x00007fc637bed2c8 in ARDOUR::Session::save_state(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, bool, bool, bool, bool)
   (this=0x55a846d0f050, snapshot_name="", pending=true, switch_to_snapshot=false, template_only=false, for_archive=false, only_used_assets=false) at ../libs/ardour/session_state.cc:815
#6  0x00007fc637b4d967 in ARDOUR::Session::auto_punch_start_changed(ARDOUR::Location*) (this=0x55a846d0f050, location=0x55a848fe11d0) at ../libs/ardour/session.cc:1395
#7  0x00007fc637b4da21 in ARDOUR::Session::auto_punch_end_changed(ARDOUR::Location*)
   (this=0x7fc637b4da21 <ARDOUR::Session::auto_punch_end_changed(ARDOUR::Location*)+67>, location=0x7ffe38dcbf10) at ../libs/ardour/session.cc:1403
[..]
#14 0x00007fc637730a2a in ARDOUR::Location::set_state(XMLNode const&, int) (this=0x55a848fe11d0, node=..., version=6000) at ../libs/ardour/location.cc:715
#15 0x00007fc637732428 in ARDOUR::Locations::set_state(XMLNode const&, int) (this=0x55a8466d4740, node=..., version=6000) at ../libs/ardour/location.cc:1130
#16 0x000055a842388dd7 in MementoCommand<ARDOUR::Locations>::undo() (this=0x55a84d1e5f10) at ../libs/pbd/pbd/memento_command.h:141
#17 0x00007fc635b50707 in UndoTransaction::undo() (this=0x55a84d513b80) at ../libs/pbd/undo.cc:128
#18 0x00007fc635b50e1c in UndoHistory::undo(unsigned int) (this=0x55a846d11338, n=0) at ../libs/pbd/undo.cc:267
#19 0x00007fc637c0dfff in ARDOUR::Session::undo(unsigned int) (this=0x55a846d0f050, n=1) at ../libs/ardour/session_state.cc:5577
2020-01-30 04:16:19 +01:00
doc Update waf to v2.0.19 2020-01-25 04:07:41 +01:00
export FFmpeg/MP3 export supports tagging 2019-03-02 14:38:19 +01:00
gtk2_ardour Find fmt-binding in out-of-tree building 2020-01-29 19:41:12 +01:00
headless Update utility and tools GPL boilerplate and (C) from git log 2019-08-03 15:53:17 +02:00
libs Fix recursive locks during undo/redo due to state save 2020-01-30 04:16:19 +01:00
mcp New implementation for single-fader mackie devices (reverts b96d8e) 2019-10-22 14:39:38 -05:00
midi_maps Fix dead-link to manual 2018-12-23 04:50:58 +01:00
msvc_extra_headers Minor changes needed to make the 'mp3 import' sources build with MSVC 2019-12-08 15:01:59 +00:00
MSVCardour3 Add/remove source(s) in our MSVC project (gtk2_ardour) 2019-12-16 14:34:41 +00:00
MSVCMixbus3 Initial changes needed for building Mixbus (with MSVC) as version 5 2018-09-10 07:14:59 +01:00
MSVCvst_scan Adapt our remaining MSVC projects for 'boost::atomic' (in case it later gets extended to the other libs) 2018-09-30 09:19:28 +01:00
nutemp additional changes to follow library name change from timecode -> temporal 2017-09-25 12:13:54 -04:00
osc OSC: Add send/plugin page values to GUI 2017-06-14 10:28:45 -07:00
osc_interfaces/touchosc added an Ardour-focused smartphone layout for Touch OSC 2019-09-30 21:36:41 +02:00
patches patches to fix notebook tab tearoff on DnD. 2015-07-20 16:56:15 -04:00
patchfiles Add patchfiles/Moog_Slim_Phatty.midnam 2019-09-06 18:39:17 +02:00
plugin_metadata check-in of cleaned up plugin tags by Harrison Consoles intern Chris Hickman 2018-06-20 14:15:18 -05:00
scripts Remove debug print (amends 978de9) 2020-01-23 22:42:29 +01:00
session_utils Towards waf python 2+3 support 2020-01-25 04:07:37 +01:00
templates Deploy Session-templates 2017-08-23 23:55:00 +02:00
tools Fix OSX/PPC packaging 2020-01-25 11:35:17 +01:00
us2400 switch remaining use of Common/ToggleMixerList to Mixer/ToggleMixerList 2019-03-18 10:58:02 -07: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 add .vscode editor data to gitignore 2019-08-28 10:07:41 -05:00
ardour.1 fix link in manpage 2016-10-18 22:26:23 +02:00
ardour.1.es
ardour.1.fr convert French man page from ISO-8859-1 to UTF-8 encoding 2016-03-08 08:39:58 -05:00
ardour.1.ru convert Russian man page from KOI8-R to UTF-8 encoding 2016-03-08 08:39:58 -05:00
COPYING update GPL (formatting and update FSF address) 2014-10-26 02:24:35 +01:00
instant.xml.sae
msvc32-fixup.pl Initial changes needed for building Mixbus (with MSVC) as version 5 2018-09-10 07:14:59 +01:00
PACKAGER_README
README another trivial change to test hooks 2013-03-13 14:35:39 -04: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
testfile.ogg
TRANSLATORS Update TRANSLATORS 2017-01-05 09:21:12 +00:00
waf Update waf to v2.0.19 2020-01-25 04:07:41 +01:00
wscript Fix configuration with gcc-9 2020-01-26 01:11:23 +01:00

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

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