13
0
livetrax/libs/backends
Paul Davis 3c857a78c6 JACK backend: serialize all jack server calls with a mutex
As was noted in 88ee3af3ea it is unsafe/undefined behavior if two threads
sleep on the JACK request file descriptor, since there is no way to control
which one will wake and process the request. Since each thread may have
sent a different request, this can lead to a thread misinterpreting the
response because it is reading the wrong response.

This may (or may not) solve some subtle problems with JACK, but was
revealed by having a control surface (LaunchPad Pro) that registers
three ports from the butler thread at about the same as the GUI
thread is registering the auditioner. One thread read the wrong
response, and because of some slightly weird code/design, it attempts
to rename the port from within the response handler, which in JACK1
leads to deadlock (and later, zombification).
2023-09-13 09:20:41 -06:00
..
alsa Amend d899441df1, fix duplicate device map entries 2023-07-03 19:57:55 +02:00
coreaudio CoreMIDI: fix capture/playback alignment 2023-06-29 00:32:46 +02:00
dummy Dummy backend: add realtime option 2023-06-20 01:36:44 +02:00
jack JACK backend: serialize all jack server calls with a mutex 2023-09-13 09:20:41 -06:00
MSVCbackends
portaudio PortAudio: implement MIDI device config 2023-06-18 02:35:03 +02:00
pulseaudio switch from glib atomic to std::atomic (libs edition) 2023-03-24 14:19:15 -06:00
wscript