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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.


-- 
Luiz Augusto von Dentz


[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux