summaryrefslogtreecommitdiff
path: root/gatchat
diff options
context:
space:
mode:
Diffstat (limited to 'gatchat')
-rw-r--r--gatchat/gatmux.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gatchat/gatmux.c b/gatchat/gatmux.c
index 9beeece3..074e340a 100644
--- a/gatchat/gatmux.c
+++ b/gatchat/gatmux.c
@@ -598,6 +598,13 @@ void g_at_mux_unref(GAtMux *mux)
}
}
+static void read_watcher_destroy_notify(gpointer user_data)
+{
+ GAtMux *mux = user_data;
+
+ mux->read_watch = 0;
+}
+
gboolean g_at_mux_start(GAtMux *mux)
{
if (mux->channel == NULL)
@@ -611,7 +618,7 @@ gboolean g_at_mux_start(GAtMux *mux)
mux->read_watch = g_io_add_watch_full(mux->channel, G_PRIORITY_DEFAULT,
G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL,
- received_data, mux, NULL);
+ received_data, mux, read_watcher_destroy_notify);
mux->shutdown = FALSE;