mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-04 13:29:59 -05:00
parent
66db0c8471
commit
2952f28c06
1 changed files with 9 additions and 5 deletions
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue