[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