[pulseaudio-discuss] [PATCH] bluetooth: Release transport when the pa_rtpoll_run loop finishes.

Arun Raghavan arun.raghavan at collabora.co.uk
Mon May 28 20:54:39 PDT 2012


On Wed, 2012-05-23 at 12:15 +0300, Luiz Augusto von Dentz wrote:
> Hi Jarkko,
> 
> On Tue, May 22, 2012 at 3:58 PM, Jarkko Suontausta
> <jarkko.suontausta at digia.com> wrote:
> > Based on a patch by Marko Ollonen.
> > ---
> >  src/modules/bluetooth/module-bluetooth-device.c |   13 ++++++++++---
> >  1 files changed, 10 insertions(+), 3 deletions(-)
> >
> > diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c
> > index 0b12cc7..68c4efc 100644
> > --- a/src/modules/bluetooth/module-bluetooth-device.c
> > +++ b/src/modules/bluetooth/module-bluetooth-device.c
> > @@ -1731,11 +1731,18 @@ static void thread_func(void *userdata) {
> >             pollfd->events = (short) (((u->sink && PA_SINK_IS_LINKED(u->sink->thread_info.state) && !writable) ? POLLOUT : 0) |
> >                                       (u->source && PA_SOURCE_IS_LINKED(u->source->thread_info.state) ? POLLIN : 0));
> >
> > -        if ((ret = pa_rtpoll_run(u->rtpoll, TRUE)) < 0)
> > +        if ((ret = pa_rtpoll_run(u->rtpoll, TRUE)) < 0) {
> > +            pa_log_debug("pa_rtpoll_run failed with: %d", ret);
> >             goto fail;
> > -
> > -        if (ret == 0)
> > +        }
> > +        if (ret == 0) {
> > +            pa_log_debug("IO thread shutdown requested, stopping cleanly");
> > +            if (u->transport)
> > +                bt_transport_release(u);
> > +            else
> > +                stop_stream_fd(u);
> >             goto finish;
> > +        }
> >
> >         pollfd = u->rtpoll_item ? pa_rtpoll_item_get_pollfd(u->rtpoll_item, NULL) : NULL;
> >
> > --
> > 1.7.0.4
> 
> Looks good, ack.

And pulled.

-- Arun




More information about the pulseaudio-discuss mailing list