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)