13
0
livetrax/libs
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
..
appleutility
ardour Fix recursive locks during undo/redo due to state save 2020-01-30 04:16:19 +01:00
ardouralsautil
audiographer NO-OP: whitespace 2020-01-14 00:52:24 +01:00
backends Downgrade "using all channels" warning to info - part 2 2020-01-25 04:17:53 +01:00
canvas Explicitly use OSX 2020-01-25 04:07:41 +01:00
clearlooks-newer Special case checkbox border color in Treeview 2020-01-25 03:40:04 +01:00
evoral Fix building unit-tests 2020-01-27 17:43:37 +01:00
fluidsynth
fst Update waf2.x "subst" feature uses obj attributes 2020-01-25 06:20:28 +01:00
gtkmm2ext Explicitly use OSX 2020-01-25 04:07:41 +01:00
hidapi
libltc
lua NO-OP: whitespace 2020-01-14 00:52:24 +01:00
midi++2 Fix building unit-tests 2020-01-27 17:43:37 +01:00
panners Explicitly use OSX 2020-01-25 04:07:41 +01:00
pbd Fix building unit-tests 2020-01-27 17:43:37 +01:00
plugins Update waf2.x "subst" feature uses obj attributes 2020-01-25 06:20:28 +01:00
ptformat Towards waf python 2+3 support 2020-01-25 04:07:37 +01:00
qm-dsp Do not install static libs 2020-01-22 02:00:25 +01:00
surfaces Explicitly use OSX 2020-01-25 04:07:41 +01:00
temporal NO-OP: whitespace 2020-01-14 00:52:24 +01:00
vamp-plugins Fix some clang-scan warnings 2020-01-27 03:31:49 +01:00
vamp-pyin
vfork
waveview NO-OP: whitespace 2020-01-14 00:52:24 +01:00
widgets Explicitly use OSX 2020-01-25 04:07:41 +01:00
zita-convolver Do not install static libs 2020-01-22 02:00:25 +01:00
zita-resampler Do not install static libs 2020-01-22 02:00:25 +01:00