From e560d141ab0504495142486c21769df1ec346479 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Mon, 7 Mar 2016 11:13:06 +0100 Subject: [PATCH] io: pass HANDLE to g_source_add_poll on Win32 Reviewed-by: Daniel P. Berrange Signed-off-by: Paolo Bonzini --- io/channel-watch.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/io/channel-watch.c b/io/channel-watch.c index 931fa4d49d..537360527a 100644 --- a/io/channel-watch.c +++ b/io/channel-watch.c @@ -160,7 +160,11 @@ GSource *qio_channel_create_fd_watch(QIOChannel *ioc, ssource->condition = condition; +#ifdef CONFIG_WIN32 + ssource->fd.fd = (gint64)_get_osfhandle(fd); +#else ssource->fd.fd = fd; +#endif ssource->fd.events = condition; g_source_add_poll(source, &ssource->fd); @@ -186,10 +190,15 @@ GSource *qio_channel_create_fd_pair_watch(QIOChannel *ioc, ssource->condition = condition; +#ifdef CONFIG_WIN32 + ssource->fdread.fd = (gint64)_get_osfhandle(fdread); + ssource->fdwrite.fd = (gint64)_get_osfhandle(fdwrite); +#else ssource->fdread.fd = fdread; - ssource->fdread.events = condition & G_IO_IN; - ssource->fdwrite.fd = fdwrite; +#endif + + ssource->fdread.events = condition & G_IO_IN; ssource->fdwrite.events = condition & G_IO_OUT; g_source_add_poll(source, &ssource->fdread);