ardour/libs
Robin Gareus ee8e8da614
Stop auto-connect thread before terminating ctrl surfaces
This works around a race-condition, calling d'tors from
two threads concurrently.

The GUI thread destroys ctrl surfaces. ~~MIDIControllable()
calls ::drop_external_control() -> ::midi_forget()
This unsubscribes from signals (notably MIDI::Parser events)
by calling ScopedConnection::disconnect(), Connection::disconnect().

At the same time auto_connect_thread can call
PortManager::clear_pending_port_deletions() which removes
the MIDI port and destorys the MIDI::Parser.

~Parser() calls Connection::signal_going_away() to invalidate
connected signals.

This can deadlock if it is called concurrently with
Connection::disconnect() on the same signal.

see also
https://discourse.ardour.org/t/ardour-session-close-hangs/106523/10
2021-11-20 23:14:42 +01:00
..
appleutility
ardour Stop auto-connect thread before terminating ctrl surfaces 2021-11-20 23:14:42 +01:00
ardouralsautil Consistent env variable naming (see also 6801c2cac2) 2021-06-10 03:17:49 +02:00
audiographer Fix Upsampler new/delete mismatch 2021-06-12 21:16:18 +02:00
auscan Early exit plugin-scanner on crash 2021-07-23 01:37:46 +02:00
backends Fix gcc4 builds ('EEXIST' was not declared in this scope) 2021-11-15 19:12:00 +01:00
canvas Canvas: Fix notification to parent of show/hide status 2021-11-09 08:49:21 -07:00
clearlooks-newer
evoral SMF: Often files don't have Track+Instr names. Make something up to avoid file collisions. 2021-11-13 15:54:11 -06:00
fluidsynth No more wine 2021-07-03 19:07:25 +02:00
fst Fix --no-nls compilation 1/2 -- #8802 2021-09-27 16:28:44 +02:00
gtkmm2ext Remove annoying debug message 2021-09-25 00:01:23 +02:00
hidapi
libltc
lua Fix Lua bindings for C++17/C++20 -- #8683 2021-05-02 16:36:30 +02:00
midi++2 change Timecode::BBT_Time to use Temporal namespace, plus a couple of other minor changes to enable compilation 2021-08-13 12:51:28 -06:00
panners panners: conversion to use timeline types 2021-08-13 12:51:29 -06:00
pbd remove all dangling event-loop-precall code 2021-10-11 17:48:53 -06:00
plugins Remove unused function (Wunused-function) 2021-05-30 20:09:35 -04:00
ptformat ptformat: Update to upstream 232ba25 2021-01-17 13:19:54 +11:00
qm-dsp
surfaces control surface changes to follow TempoMap::sample_at() API change 2021-11-17 15:57:54 -07:00
temporal tempomap: reimplement TempoMap::bbt_walk() 2021-11-17 15:59:03 -07:00
vamp-plugins Export analysis: log loudness / time 2021-04-07 01:46:02 +02:00
vamp-pyin
vfork
vst3 Backport VST3 diagnostic pragma 2021-03-01 22:14:38 +01:00
waveview Waveform: work around empty peakfile edge-case 2021-11-14 23:11:19 +01:00
widgets Fix horiz meter expose 2021-09-25 00:01:23 +02:00
zita-convolver zita-convolver: fix hang at when re-loading state 2021-03-30 01:29:28 +02:00
zita-resampler