From 090c21bca8c818ab6b83a2776d5d0b4a9c7ef9fb Mon Sep 17 00:00:00 2001 From: Szymon Janc Date: Mon, 24 Nov 2014 23:35:37 +0100 Subject: [PATCH] shared/io-glib: Fix not calling destroy callback 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 af2ba4ef7..e9578e17d 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) -- 2.47.3