mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-31 22:25:38 -04:00
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. |
||
|---|---|---|
| .. | ||
| acp | ||
| mixer | ||
| 90-pipewire-alsa.rules | ||
| acp-tool.c | ||
| alsa-acp-device.c | ||
| alsa-pcm-device.c | ||
| alsa-pcm-sink.c | ||
| alsa-pcm-source.c | ||
| alsa-pcm.c | ||
| alsa-pcm.h | ||
| alsa-seq-bridge.c | ||
| alsa-seq.c | ||
| alsa-seq.h | ||
| alsa-udev.c | ||
| alsa.c | ||
| alsa.h | ||
| dll.h | ||
| meson.build | ||
| test-timer.c | ||