diff options
-rw-r--r-- | chardev/char-fd.c | 6 | ||||
-rw-r--r-- | chardev/char-io.c | 8 | ||||
-rw-r--r-- | chardev/char-io.h | 2 | ||||
-rw-r--r-- | chardev/char-pty.c | 2 | ||||
-rw-r--r-- | chardev/char-socket.c | 4 | ||||
-rw-r--r-- | chardev/char-udp.c | 6 | ||||
-rw-r--r-- | chardev/char.c | 2 |
7 files changed, 15 insertions, 15 deletions
diff --git a/chardev/char-fd.c b/chardev/char-fd.c index fb51ab4..548dd4c 100644 --- a/chardev/char-fd.c +++ b/chardev/char-fd.c @@ -58,7 +58,7 @@ static gboolean fd_chr_read(QIOChannel *chan, GIOCondition cond, void *opaque) ret = qio_channel_read( chan, (gchar *)buf, len, NULL); if (ret == 0) { - remove_fd_in_watch(chr); + remove_fd_in_watch(chr, NULL); qemu_chr_be_event(chr, CHR_EVENT_CLOSED); return FALSE; } @@ -89,7 +89,7 @@ static void fd_chr_update_read_handler(Chardev *chr, { FDChardev *s = FD_CHARDEV(chr); - remove_fd_in_watch(chr); + remove_fd_in_watch(chr, NULL); if (s->ioc_in) { chr->fd_in_tag = io_add_watch_poll(chr, s->ioc_in, fd_chr_read_poll, @@ -103,7 +103,7 @@ static void char_fd_finalize(Object *obj) Chardev *chr = CHARDEV(obj); FDChardev *s = FD_CHARDEV(obj); - remove_fd_in_watch(chr); + remove_fd_in_watch(chr, NULL); if (s->ioc_in) { object_unref(OBJECT(s->ioc_in)); } diff --git a/chardev/char-io.c b/chardev/char-io.c index 7dfc3f2..b4bb094 100644 --- a/chardev/char-io.c +++ b/chardev/char-io.c @@ -127,14 +127,14 @@ guint io_add_watch_poll(Chardev *chr, return tag; } -static void io_remove_watch_poll(guint tag) +static void io_remove_watch_poll(guint tag, GMainContext *context) { GSource *source; IOWatchPoll *iwp; g_return_if_fail(tag > 0); - source = g_main_context_find_source_by_id(NULL, tag); + source = g_main_context_find_source_by_id(context, tag); g_return_if_fail(source != NULL); iwp = io_watch_poll_from_source(source); @@ -146,10 +146,10 @@ static void io_remove_watch_poll(guint tag) g_source_destroy(&iwp->parent); } -void remove_fd_in_watch(Chardev *chr) +void remove_fd_in_watch(Chardev *chr, GMainContext *context) { if (chr->fd_in_tag) { - io_remove_watch_poll(chr->fd_in_tag); + io_remove_watch_poll(chr->fd_in_tag, context); chr->fd_in_tag = 0; } } diff --git a/chardev/char-io.h b/chardev/char-io.h index d7ae5f1..842be56 100644 --- a/chardev/char-io.h +++ b/chardev/char-io.h @@ -36,7 +36,7 @@ guint io_add_watch_poll(Chardev *chr, gpointer user_data, GMainContext *context); -void remove_fd_in_watch(Chardev *chr); +void remove_fd_in_watch(Chardev *chr, GMainContext *context); int io_channel_send(QIOChannel *ioc, const void *buf, size_t len); diff --git a/chardev/char-pty.c b/chardev/char-pty.c index ecf2c7a..a6337be 100644 --- a/chardev/char-pty.c +++ b/chardev/char-pty.c @@ -199,7 +199,7 @@ static void pty_chr_state(Chardev *chr, int connected) g_source_remove(s->open_tag); s->open_tag = 0; } - remove_fd_in_watch(chr); + remove_fd_in_watch(chr, NULL); s->connected = 0; /* (re-)connect poll interval for idle guests: once per second. * We check more frequently in case the guests sends data to diff --git a/chardev/char-socket.c b/chardev/char-socket.c index 865c527..d7e92e1 100644 --- a/chardev/char-socket.c +++ b/chardev/char-socket.c @@ -328,7 +328,7 @@ static void tcp_chr_free_connection(Chardev *chr) } tcp_set_msgfds(chr, NULL, 0); - remove_fd_in_watch(chr); + remove_fd_in_watch(chr, NULL); object_unref(OBJECT(s->sioc)); s->sioc = NULL; object_unref(OBJECT(s->ioc)); @@ -498,7 +498,7 @@ static void tcp_chr_update_read_handler(Chardev *chr, return; } - remove_fd_in_watch(chr); + remove_fd_in_watch(chr, NULL); if (s->ioc) { chr->fd_in_tag = io_add_watch_poll(chr, s->ioc, tcp_chr_read_poll, diff --git a/chardev/char-udp.c b/chardev/char-udp.c index 2c6c7dd..804bd22 100644 --- a/chardev/char-udp.c +++ b/chardev/char-udp.c @@ -81,7 +81,7 @@ static gboolean udp_chr_read(QIOChannel *chan, GIOCondition cond, void *opaque) ret = qio_channel_read( s->ioc, (char *)s->buf, sizeof(s->buf), NULL); if (ret <= 0) { - remove_fd_in_watch(chr); + remove_fd_in_watch(chr, NULL); return FALSE; } s->bufcnt = ret; @@ -101,7 +101,7 @@ static void udp_chr_update_read_handler(Chardev *chr, { UdpChardev *s = UDP_CHARDEV(chr); - remove_fd_in_watch(chr); + remove_fd_in_watch(chr, NULL); if (s->ioc) { chr->fd_in_tag = io_add_watch_poll(chr, s->ioc, udp_chr_read_poll, @@ -115,7 +115,7 @@ static void char_udp_finalize(Object *obj) Chardev *chr = CHARDEV(obj); UdpChardev *s = UDP_CHARDEV(obj); - remove_fd_in_watch(chr); + remove_fd_in_watch(chr, NULL); if (s->ioc) { object_unref(OBJECT(s->ioc)); } diff --git a/chardev/char.c b/chardev/char.c index 54cd5f4..3df1163 100644 --- a/chardev/char.c +++ b/chardev/char.c @@ -560,7 +560,7 @@ void qemu_chr_fe_set_handlers(CharBackend *b, cc = CHARDEV_GET_CLASS(s); if (!opaque && !fd_can_read && !fd_read && !fd_event) { fe_open = 0; - remove_fd_in_watch(s); + remove_fd_in_watch(s, context); } else { fe_open = 1; } |