[pulseaudio-discuss] [PATCH 4/5] mainloop: Write to the wakeup pipe unconditionally when waking up the mainloop.
Tanu Kaskinen
tanuk at iki.fi
Wed Nov 7 04:44:31 PST 2012
Ping! This old patch should fix a recently reported bug:
https://bugs.freedesktop.org/show_bug.cgi?id=56735
This patch seems to depend on patches 1 and 3 in the series
--
Tanu
On Mon, 2012-04-02 at 15:01 +0300, Tanu Kaskinen wrote:
> If the mainloop is just about to enter polling, but m->state
> is not POLLING yet when some other thread calls
> pa_mainloop_wakeup(), the mainloop will not be woken up.
> It's safe to write to the wakeup pipe at any time, so let's
> just remove the check.
> ---
> src/pulse/mainloop.c | 6 ++----
> 1 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/src/pulse/mainloop.c b/src/pulse/mainloop.c
> index 160ba9c..8ac8f06 100644
> --- a/src/pulse/mainloop.c
> +++ b/src/pulse/mainloop.c
> @@ -774,10 +774,8 @@ void pa_mainloop_wakeup(pa_mainloop *m) {
> char c = 'W';
> pa_assert(m);
>
> - if (m->state == STATE_POLLING) {
> - pa_write(m->wakeup_pipe[1], &c, sizeof(c), &m->wakeup_pipe_type);
> - pa_atomic_store(&m->wakeup_requested, TRUE);
> - }
> + pa_write(m->wakeup_pipe[1], &c, sizeof(c), &m->wakeup_pipe_type);
> + pa_atomic_store(&m->wakeup_requested, TRUE);
> }
>
> static void clear_wakeup(pa_mainloop *m) {
More information about the pulseaudio-discuss
mailing list