revents may have been cleared by GMain before dispatch().
authorThomas Kristensen <thomas.kristensen@cisco.com>
Mon, 3 Jan 2011 13:20:12 +0000 (15:20 +0200)
committerTor Lillqvist <tml@iki.fi>
Mon, 3 Jan 2011 13:20:12 +0000 (15:20 +0200)
See bug #587898.

gio/gsocket.c

index b78a586..01792a7 100644 (file)
@@ -2468,6 +2468,10 @@ socket_source_dispatch (GSource     *source,
   GSocketSourceFunc func = (GSocketSourceFunc)callback;
   GSocketSource *socket_source = (GSocketSource *)source;
 
+#ifdef G_OS_WIN32
+  socket_source->pollfd.revents = update_condition (socket_source->socket);
+#endif
+
   return (*func) (socket_source->socket,
                  socket_source->pollfd.revents & socket_source->condition,
                  user_data);