mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-30 08:53:08 +01:00
Mirror of Ardour Source Code
The backend holds `_port_callback_mutex` while disconnecting ports. In some cases disconnecting a port can drop the last reference resulting in a port-deletion from the connection handler. This in turn will eventually aquire the `_port_callback_mutex` and deadlock. This is now circumvented by using atomic operations instead of taking a lock to set the `_port_change_flag`. The flag is also used to trigger a latency update in some cases, atomic is preferable to taking a lock to set this flag. -- Full bt: https://paste.debian.net/1184056/ Short: #1 in pthread_mutex_lock () #2 in ARDOUR::PortEngineSharedImpl::port_connect_add_remove_callback() #3 in ARDOUR::BackendPort::~BackendPort() #4 in ARDOUR::DummyPort::~DummyPort() #6 in ARDOUR::DummyAudioPort::~DummyAudioPort() #7 in boost::checked_delete<ARDOUR::BackendPort>(ARDOUR::BackendPort*) #12 in boost::shared_ptr<ARDOUR::ProtoPort>::reset() #13 in ARDOUR::Port::drop() #14 in ARDOUR::Port::~Port() #15 in ARDOUR::AudioPort::~AudioPort() #17 in ARDOUR::AudioEngine::add_pending_port_deletion(ARDOUR::Port*) #20 in boost::detail::sp_counted_base::release() #37 in ARDOUR::PortManager::connect_callback() at libs/ardour/port_manager.cc:788 #38 in ARDOUR::DummyAudioBackend::main_process_thread() at libs/backends/dummy/dummy_audiobackend.cc:1018 |
||
|---|---|---|
| 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 http://ardour.org/ for all documentation..
For information on building ardour:
http://ardour.org/development.html