pipewire/spa
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
..
examples treewide: meson.build: use dependency variable for SPA 2021-12-28 18:34:06 +01:00
include spa: allow spa_dict.items to be NULL for zero items 2022-01-20 20:04:18 +02:00
plugins alsa-udev: postpone emitting if pcm devices are busy, retry later 2022-01-23 12:33:57 +00:00
tests treewide: meson.build: simplify get_variable() calls 2022-01-17 08:28:53 +00:00
tools json: spa_json_get_string() writes up to len chars or fail 2022-01-04 10:42:32 +01:00
meson.build spa: meson.build: export data directory on dependency 2021-12-28 18:41:09 +01:00