pipewire/spa/plugins/alsa
Pauli Virtanen e1bc1c4569 alsa-udev: postpone emitting if pcm devices are busy, retry later
There is a race condition on udev permission changes (e.g. switching
VTs), when pipewire from one user closes devices, and the other process
from second user tries to open them.  The close/open are not ordered, so
opening a device may fail in alsa-acp-device.c resulting to missing
devices/profiles.

Address this by trying to open devices already in alsa-udev.c. If some
devices are busy, do not emit the device info yet, but retry after a
timeout.  If it still fails, go ahead emitting the device, even if some
profiles may be missing.  The retry with delay should be enough to solve
the race almost always.
2022-01-23 12:33:57 +00:00
..
acp alsa/acp: make pa_ato* functions behave as PA ones 2022-01-08 16:26:07 +02:00
mixer Remove separate profile set for Behringer UMC22 that is covered by Texas Instruments PCM2902 profile set 2022-01-09 15:37:44 +00:00
90-pipewire-alsa.rules alsa: remove TI 2902 rule, it seems to break things 2022-01-19 20:31:09 +01:00
acp-tool.c treewide: mark things static and const 2021-06-30 14:44:08 +02:00
alsa-acp-device.c alsa: don't prefix NAME, log topics are enough 2021-10-03 08:05:40 +02:00
alsa-pcm-device.c alsa: don't prefix NAME, log topics are enough 2021-10-03 08:05:40 +02:00
alsa-pcm-sink.c alsa: make internal latency configurable with params 2022-01-18 11:46:08 +01:00
alsa-pcm-source.c alsa: make internal latency configurable with params 2022-01-18 11:46:08 +01:00
alsa-pcm.c alsa: make internal latency configurable with params 2022-01-18 11:46:08 +01:00
alsa-pcm.h alsa: remove unused properties and hardcoded values 2022-01-12 17:51:49 +01:00
alsa-seq-bridge.c buffers: make alignment optional 2022-01-03 12:32:26 +01:00
alsa-seq.c alsa: don't prefix NAME, log topics are enough 2021-10-03 08:05:40 +02:00
alsa-seq.h alsa-seq: make clock name configurable 2021-12-10 12:20:08 +01:00
alsa-udev.c alsa-udev: postpone emitting if pcm devices are busy, retry later 2022-01-23 12:33:57 +00:00
alsa.c spa: implement a log topic for alsa 2021-09-28 09:35:39 +02:00
alsa.h spa: implement a log topic for alsa 2021-09-28 09:35:39 +02:00
dll.h alsa: refactor dll code 2020-12-09 12:09:40 +01:00
meson.build treewide: meson.build: use dependency variable for SPA 2021-12-28 18:34:06 +01:00
test-timer.c spa: Fix a compiler warning caused by unchecked read() 2020-12-24 17:54:32 +02:00