SDL/src/audio/pulseaudio
Ryan C. Gordon 35292d7dba pulseaudio: Redesigned to use pa_threaded_mainloop.
We weren't meant to have multiple contexts and mainloops, but we had one
for each opened device and the hotplug detection thread. Instead, use
pa_threaded_mainloop, which can be shared between threads and objects, and
a single context (which, according to the PulseAudio documentation, is
usually meant to be a singleton that represents a global server connection,
possibly with multiple streams hung on it).

Now instead of polling in a loop, threads will block until the
threaded_mainloop runs a callback, and the callback will fire a signal to
unblock the thread.

Prior to this, the code upset ThreadSanitizer, as Pulse has some unprotected
global resource that each mainloop/context would touch.

Reference Issue #7427.
2023-05-26 09:07:33 -04:00
..
SDL_pulseaudio.c pulseaudio: Redesigned to use pa_threaded_mainloop. 2023-05-26 09:07:33 -04:00
SDL_pulseaudio.h pulseaudio: Redesigned to use pa_threaded_mainloop. 2023-05-26 09:07:33 -04:00