ardour/tools
Paul Davis 5d023b4c60 libpbd: fix an important thinko for cross-thread signal architecture
The old code assumed that the thread that created a request buffer for a given
signal-emitting thread would be the latter thread, and thus a thread-local
pointer to the request buffer could be used. This turns out not to be true: the
GUI thread tends to be responsible for constructing the request buffers for
pre-registered threads.

That mechanism has been replaced by using a RWLock protected map using
pthread_t as the key and the request buffer as the value. This allows any
thread to create and register the request buffers used between any other pair
of threads (because the lookup always uses a pthread_t).

The symptoms of this problem were a signal emitted in an audioengine thread
that was propagated to the target thread, but when the target thread scans its
request buffers for requests, it finds nothing (because it didn't know about
the request buffer). In a sense, the signal was successfully delivered to the
target thread, but no meaningful work (i.e the signal handler) is performed.
2023-04-21 12:16:37 -06:00
..
ARDOUR
bb wscript: consistently use 4 spaces for indentation 2022-04-09 12:16:40 +02:00
CrashReporter copy all XCode project files from Tracks. 2015-06-29 14:18:10 -04:00
doxy2json Fix Lua-doc doxygen declaration extraction 2019-08-29 21:40:54 +02:00
fluid-patches Update to fluidsynth-2.2 2021-04-18 22:02:57 +02:00
gccabicheck wscript: fix 'testing equality is none' issue 2022-04-08 18:27:10 +02:00
icons Add convenience API to render icons on signal_expose_event 2021-03-26 14:35:45 +01:00
linux_packaging Fix building linux-demo bundle 2023-03-25 20:24:31 +01:00
misc_resources Add Ardour logo sources (thanks to thorwil) 2022-10-14 02:21:09 +02:00
omf Fix OMFtool; sample_rate vs frame_rate 2019-04-08 16:11:38 +02:00
osx_packaging Update bundle/package scripts 2023-03-24 19:07:30 +01:00
patches Update boost-ptr debug patch for boost 1.67 2020-02-25 02:29:03 +01:00
sanity_check Fix various typos 2022-04-08 19:51:02 +02:00
signal-test libpbd: fix an important thinko for cross-thread signal architecture 2023-04-21 12:16:37 -06:00
smf-load Update SMF profile tool to show number of temmp changes 2022-09-25 03:30:15 +02:00
udev Add readme for udev files 2022-05-17 03:52:36 +02:00
videotimeline really fix vsrv.php script. support new A3.5-CC (BGRA images, CSV) 2014-04-21 04:39:25 +02:00
vst3-patches Add script to copy VST3 headers 2020-09-16 22:49:19 +02:00
x-win Update bundle/package scripts 2023-03-24 19:07:30 +01:00
as-metainfo.its Implement translation of AppData file. 2015-11-22 15:32:07 +01:00
autowaf.py configure: clarify that --optimize just is the opposite of --debug 2022-08-19 10:57:17 -06:00
avahi.sh Add zeroconf/mdns support 2022-12-02 17:32:11 +01:00
clang-format Tweak .clang-format 2019-08-13 01:06:12 +02:00
cstyle.py Fix various typos 2022-04-08 19:51:02 +02:00
ctagsparse.py fix Plugin Pin for Audio + Midi input plugins 2016-04-13 01:16:03 +02:00
define_versions.sh Update bundle/package scripts 2023-03-24 19:07:30 +01:00
f2s new script to globally switch from "audio frames" to "audio samples" 2017-07-15 12:21:59 -04:00
fmt-bindings remove clip editor bindings (for now), since we do not show the clip editor 2022-09-21 08:51:36 -06:00
fmt-luadoc.php Update Lua documentation script to use std:: instead of boost 2023-03-25 00:07:56 +01:00
jacktest.c Spelling correction patch from Debian 2016-02-22 15:13:01 -05:00
list_scripts.lua Lua script-list: consolidate whitespace in description 2020-04-24 06:05:22 +02:00
misc.py Fix various typos 2022-04-08 19:51:02 +02:00
msvc32-fixup.pl Clean up top-level source folder 2022-09-08 17:02:59 +02:00
nofuzz.sh Fix various typos 2022-04-08 19:51:02 +02:00
objc.supp add OSX/objc valgrind suppression file 2015-09-07 15:43:20 +02:00
peakdump.c small tool to debug .peak files 2015-01-12 21:42:44 +01:00
pre-commit Fix various typos 2022-04-08 19:51:02 +02:00
process-metadata configuration_metadata.cc should be manually generated whenever metadata changes, so just commit current version 2023-01-28 08:27:56 -07:00
readtest.c NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
resample_session.pl
run-readtest.sh R/W test scripts are bash scripts 2019-01-01 23:12:37 +01:00
run-threadreadtest.sh R/W test scripts are bash scripts 2019-01-01 23:12:37 +01:00
run-writetest.sh R/W test scripts are bash scripts 2019-01-01 23:12:37 +01:00
session_exchange.py
sfrtest.cc NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
sftest.cc globally change all use of "frame" to refer to audio into "sample". 2017-09-18 12:39:17 -04:00
split_benchmark.lua Update split-benchmark script (fix autoconnect) 2021-05-11 20:30:53 +02:00
synthesize_sources.pl
thread_readtest.cc new test tools to check thread-pool based disk i/o 2015-11-17 10:14:44 -05:00
update_fluidsynth.sh Fix various typos 2022-04-08 19:51:02 +02:00
update_luadoc.sh Fix building Lua documentation 2020-11-06 18:00:00 +01:00
update_lv2stack.sh Add script to update LV2kit build-dep 2020-05-15 15:29:16 +02:00
update_qm-dsp.sh Address some Wmissing-prototypes in qm-dsp 2022-11-26 16:23:52 +01:00
update_qm-vamp.sh Add script to update vamp-plugins 2017-04-01 21:49:34 +02:00
update_vst3.sh Add script to copy VST3 headers 2020-09-16 22:49:19 +02:00
valgrind.supp update valgrind suppression file (ignore system-wide libs) 2014-06-15 13:24:41 +02:00