Destroy callback should be called also for G_IO_ERR | G_IO_NVAL
condition.
---
src/shared/io-glib.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/shared/io-glib.c b/src/shared/io-glib.c
index af2ba4e..e9578e1 100644
--- a/src/shared/io-glib.c
+++ b/src/shared/io-glib.c
@@ -159,9 +159,11 @@ static gboolean watch_callback(GIOChannel *channel, GIOCondition cond,
gpointer user_data)
{
struct io_watch *watch = user_data;
- bool result;
+ bool result, destroy;
- if (cond & (G_IO_ERR | G_IO_NVAL))
+ destroy = watch == watch->io->disconnect_watch;
+
+ if (!destroy && (cond & (G_IO_ERR | G_IO_NVAL)))
return FALSE;
if (watch->callback)
--
1.9.3
Hi Szymon,
On Mon, Nov 24, 2014, Szymon Janc wrote:
> Destroy callback should be called also for G_IO_ERR | G_IO_NVAL
> condition.
> ---
> src/shared/io-glib.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
Applied. Thanks.
Johan
Hi Szymon,
On Mon, Nov 24, 2014 at 11:35 PM, Szymon Janc <[email protected]> wrote:
> Destroy callback should be called also for G_IO_ERR | G_IO_NVAL
> condition.
> ---
> src/shared/io-glib.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/src/shared/io-glib.c b/src/shared/io-glib.c
> index af2ba4e..e9578e1 100644
> --- a/src/shared/io-glib.c
> +++ b/src/shared/io-glib.c
> @@ -159,9 +159,11 @@ static gboolean watch_callback(GIOChannel *channel, GIOCondition cond,
> gpointer user_data)
> {
> struct io_watch *watch = user_data;
> - bool result;
> + bool result, destroy;
>
> - if (cond & (G_IO_ERR | G_IO_NVAL))
> + destroy = watch == watch->io->disconnect_watch;
> +
> + if (!destroy && (cond & (G_IO_ERR | G_IO_NVAL)))
> return FALSE;
>
Just tested this patch and it works for me.
It also looks good to me.
\Lukasz
> if (watch->callback)
> --
> 1.9.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html