13
0
Go to file
Robin Gareus 19c44fe814
Fix restoring metronome connections (duplicate IO set_state)
When a session is loaded, click_io->set_state is called twice.
setup_click() is called when the engine re/starts, and
possibly again from Session::set_state.

During session construction, Port connections are not directly
made. Port::set_state just creates a list, which is later
applied by Port::reconnect from Session::hookup_io.

However, the second call to IO::set_state() calls IO::ensure_ports
again. Since the port already exists, this calls
Port::disconnect_all (while holding the process lock).

Even though the port is not connected at this point in time,
this triggers a ARDOUR::PortManager::connect_callback which
is emitted from the Audioengine when the process-lock is released.

While IO::set_state() continues to set Port::state, and fill
the Port::_[ext_]connections lists, this data is invalidated
moments later when the engine resumes and ::connect_callback
calls ARDOUR::Port::port_connected_or_disconnected.

The solution is to simply not call Port::disconnect_all
if the connection is not yet made (Session::InitialConnecting)
2023-06-22 13:28:18 +02:00
doc
gtk2_ardour Fix heap-use-after-free when toggling manual pin-control 2023-06-22 04:50:43 +02:00
headless Fix cross-compile linking (libusb - see also 5794d21a76) 2023-05-04 21:31:13 +02:00
libs Fix restoring metronome connections (duplicate IO set_state) 2023-06-22 13:28:18 +02:00
luasession Fix cross-compile linking (libusb - see also 5794d21a76) 2023-05-04 21:31:13 +02:00
msvc_extra_headers
MSVCardour3
MSVCMixbus3
MSVCvst_scan
session_utils Utils: Fix crash at exit due to engine destruction 2023-06-15 16:22:23 +02:00
share LuaProc: add option to set time information 2023-06-18 22:39:45 +02:00
tools
.dir-locals.el
.gitattributes
.gitignore
ardour.1
COPYING add plugin clarification to COPYING 2023-04-26 13:28:29 -06:00
nutempo-todo
PACKAGER_README
README
README-GITHUB.txt
system_config
TRANSLATORS
waf
wscript Clarify boost check 2023-06-02 21:31:36 +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