* [PATCH 4/4] pulse: call pa_threaded_mainloop_wait() to handle spurious wakeups
@ 2009-07-31 14:02 Lennart Poettering
0 siblings, 0 replies; only message in thread
From: Lennart Poettering @ 2009-07-31 14:02 UTC (permalink / raw)
To: ALSA Development Mailing List
pa_threaded_mainloop_wait() can wake up for no reason, according to the
specs of the underlying POSIX ptrhead_cond_wait() docs, so we need to
call it in a loop here which should be cleaner anyway.
---
pulse/pulse.c | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/pulse/pulse.c b/pulse/pulse.c
index ae66b0c..6f58a7e 100644
--- a/pulse/pulse.c
+++ b/pulse/pulse.c
@@ -262,10 +262,17 @@ int pulse_connect(snd_pulse_t * p, const char *server)
if (err < 0)
goto error;
- pa_threaded_mainloop_wait(p->mainloop);
+ for (;;) {
+ pa_context_state_t state = pa_context_get_state(p->context);
- if (pa_context_get_state(p->context) != PA_CONTEXT_READY)
- goto error;
+ if (!PA_CONTEXT_IS_GOOD(state))
+ goto error;
+
+ if (state == PA_CONTEXT_READY)
+ break;
+
+ pa_threaded_mainloop_wait(p->mainloop);
+ }
pa_threaded_mainloop_unlock(p->mainloop);
--
1.6.3.3
Lennart
--
Lennart Poettering Red Hat, Inc.
lennart [at] poettering [dot] net ICQ# 11060553
http://0pointer.net/lennart/ GnuPG 0x1A015CC4
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2009-07-31 14:02 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-31 14:02 [PATCH 4/4] pulse: call pa_threaded_mainloop_wait() to handle spurious wakeups Lennart Poettering
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox