Diff between 23d0a252dd64b7ddf61892f53f1dcdc3dc2c80b0 and 090c21bca8c818ab6b83a2776d5d0b4a9c7ef9fb

Changed Files

File Additions Deletions Status
src/shared/io-glib.c +4 -2 modified

Full Patch

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)