alsa: handle poll error

Recover after a poll error. This fixes resume after suspend.

Fixes #3646
This commit is contained in:
Wim Taymans 2023-11-15 09:56:24 +01:00
parent 443751bf16
commit 0da4ea3b30

View file

@ -3204,6 +3204,11 @@ static void alsa_wakeup_event(struct spa_source *source)
spa_log_trace_fp(state->log, "Woken up with no work to do");
return;
}
if (revents & POLLERR) {
spa_log_trace_fp(state->log, "poll error");
if ((res = alsa_recover(state)) < 0)
return;
}
} else {
if (SPA_LIKELY(state->started)) {
if (SPA_UNLIKELY((res = spa_system_timerfd_read(state->data_system,