[pulseaudio-commits] Branch 'next' - src/pulse

Tanu Kaskinen tanuk at kemper.freedesktop.org
Wed May 22 01:25:41 PDT 2013


 src/pulse/thread-mainloop.h |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit e521961aa6c5760f840091cf49ca13bd5532a5c2
Author: Mitchell Fang <mitchell.fang at gmail.com>
Date:   Wed May 22 11:23:27 2013 +0300

    thread-mainloop: Fix bug in example code
    
    Checking the operation state caused a deadlock, because the state
    won't change before my_drain_callback() returns, and it doesn't
    return before my_drain_stream_func() calls
    pa_threaded_mainloop_accept().

diff --git a/src/pulse/thread-mainloop.h b/src/pulse/thread-mainloop.h
index ff166f8..3437001 100644
--- a/src/pulse/thread-mainloop.h
+++ b/src/pulse/thread-mainloop.h
@@ -166,7 +166,7 @@ PA_C_DECL_BEGIN
  * access this data safely, we must extend our example a bit:
  *
  * \code
- * static int *drain_result;
+ * static volatile int *drain_result = NULL;
  *
  * static void my_drain_callback(pa_stream*s, int success, void *userdata) {
  *     pa_threaded_mainloop *m;
@@ -187,7 +187,7 @@ PA_C_DECL_BEGIN
  *     o = pa_stream_drain(s, my_drain_callback, m);
  *     assert(o);
  *
- *     while (pa_operation_get_state(o) == PA_OPERATION_RUNNING)
+ *     while (drain_result == NULL)
  *         pa_threaded_mainloop_wait(m);
  *
  *     pa_operation_unref(o);



More information about the pulseaudio-commits mailing list