diff options
author | Lennart Poettering <lennart@poettering.net> | 2009-07-31 23:07:07 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2009-07-31 23:07:07 +0200 |
commit | 2952f28c06b254f358ec9b3354dfc05c17a7b871 (patch) | |
tree | e559c2e43fb9726e85aa5e218ccdcf630c9f826f | |
parent | 66db0c8471360c889e40598bd587301d33b5300b (diff) |
client: fix documentation for threaded mainloop
Closes #553
-rw-r--r-- | src/pulse/thread-mainloop.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/pulse/thread-mainloop.h b/src/pulse/thread-mainloop.h index 41159d98..e847070d 100644 --- a/src/pulse/thread-mainloop.h +++ b/src/pulse/thread-mainloop.h @@ -137,15 +137,19 @@ PA_C_DECL_BEGIN * The main function, my_drain_stream_func(), will wait for the callback to * be called using pa_threaded_mainloop_wait(). * - * If your application is multi-threaded, then this waiting must be done - * inside a while loop. The reason for this is that multiple threads might be - * using pa_threaded_mainloop_wait() at the same time. Each thread must - * therefore verify that it was its callback that was invoked. + * If your application is multi-threaded, then this waiting must be + * done inside a while loop. The reason for this is that multiple + * threads might be using pa_threaded_mainloop_wait() at the same + * time. Each thread must therefore verify that it was its callback + * that was invoked. Also the underlying OS synchronization primitives + * are usually not free of spurious wake-ups, so a + * pa_threaded_mainloop_wait() must be called within a loop even if + * you have only one thread waiting. * * The callback, my_drain_callback(), indicates to the main function that it * has been called using pa_threaded_mainloop_signal(). * - * As you can see, both pa_threaded_mainloop_wait() may only be called with + * As you can see, pa_threaded_mainloop_wait() may only be called with * the lock held. The same thing is true for pa_threaded_mainloop_signal(), * but as the lock is held before the callback is invoked, you do not have to * deal with that. |