mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-03 09:01:50 -05: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) {
|
if (err < 0) {
|
||||||
pa_log_error(__FILE__": Unable to get poll revent: %s",
|
pa_log_error(__FILE__": Unable to get poll revent: %s",
|
||||||
snd_strerror(err));
|
snd_strerror(err));
|
||||||
a->defer_enable(fdl->defer, 0);
|
|
||||||
return;
|
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
|
else
|
||||||
snd_mixer_handle_events(fdl->mixer);
|
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) {
|
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));
|
assert(a && fdl && (fdl->pcm || fdl->mixer));
|
||||||
|
|
||||||
|
a->defer_enable(fdl->defer, 0);
|
||||||
|
|
||||||
if (fdl->pcm)
|
if (fdl->pcm)
|
||||||
num_fds = snd_pcm_poll_descriptors_count(fdl->pcm);
|
num_fds = snd_pcm_poll_descriptors_count(fdl->pcm);
|
||||||
else
|
else
|
||||||
|
|
@ -133,7 +136,6 @@ static void defer_cb(pa_mainloop_api*a, pa_defer_event* e, void *userdata) {
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
pa_log_error(__FILE__": Unable to get poll descriptors: %s",
|
pa_log_error(__FILE__": Unable to get poll descriptors: %s",
|
||||||
snd_strerror(err));
|
snd_strerror(err));
|
||||||
a->defer_enable(fdl->defer, 0);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue