mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-31 22:25:33 -04:00
Fix ALSA fd handling to be compatible with blocking deferred events.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@724 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
parent
e8d9a5dbfb
commit
e75cc68685
1 changed files with 4 additions and 2 deletions
|
|
@ -89,7 +89,6 @@ static void io_cb(pa_mainloop_api*a, pa_io_event* e, int fd, pa_io_event_flags_t
|
|||
if (err < 0) {
|
||||
pa_log_error(__FILE__": Unable to get poll revent: %s",
|
||||
snd_strerror(err));
|
||||
a->defer_enable(fdl->defer, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -99,6 +98,8 @@ static void io_cb(pa_mainloop_api*a, pa_io_event* e, int fd, pa_io_event_flags_t
|
|||
else
|
||||
snd_mixer_handle_events(fdl->mixer);
|
||||
}
|
||||
|
||||
a->defer_enable(fdl->defer, 1);
|
||||
}
|
||||
|
||||
static void defer_cb(pa_mainloop_api*a, pa_defer_event* e, void *userdata) {
|
||||
|
|
@ -108,6 +109,8 @@ static void defer_cb(pa_mainloop_api*a, pa_defer_event* e, void *userdata) {
|
|||
|
||||
assert(a && fdl && (fdl->pcm || fdl->mixer));
|
||||
|
||||
a->defer_enable(fdl->defer, 0);
|
||||
|
||||
if (fdl->pcm)
|
||||
num_fds = snd_pcm_poll_descriptors_count(fdl->pcm);
|
||||
else
|
||||
|
|
@ -133,7 +136,6 @@ static void defer_cb(pa_mainloop_api*a, pa_defer_event* e, void *userdata) {
|
|||
if (err < 0) {
|
||||
pa_log_error(__FILE__": Unable to get poll descriptors: %s",
|
||||
snd_strerror(err));
|
||||
a->defer_enable(fdl->defer, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue