From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:39697) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S9vhA-0000Sx-3G for qemu-devel@nongnu.org; Tue, 20 Mar 2012 05:49:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S9vh8-00044d-Cz for qemu-devel@nongnu.org; Tue, 20 Mar 2012 05:49:35 -0400 Received: from mail-pz0-f45.google.com ([209.85.210.45]:35577) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S9vh8-00044O-3z for qemu-devel@nongnu.org; Tue, 20 Mar 2012 05:49:34 -0400 Received: by dadp14 with SMTP id p14so12574898dad.4 for ; Tue, 20 Mar 2012 02:49:32 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Tue, 20 Mar 2012 10:49:15 +0100 Message-Id: <1332236961-22743-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH 0/6] fix w32 sockets List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: sw@weilnetz.de The w32 main loop has been mostly broken by the introduction of the glib main loop. glib's g_poll does not use sockets on w32, so we need a separate approach. Patch 1 is a simple cleanup that is needed later in the series. Patch 2 and patch 3 completely separate the way the main loop waits on POSIX and w32 systems, and drop glib source handling from the w32 main loop. Patch 4 fixes a longstanding bug in how sockets are handled, also simplifying the code in the process. On top of this simplification, patch 5 starts using g_poll in the w32 main loop and patch 6 adds back glib source handling. I didn't test this in the conditions explained in bug 916720, but I tested both a TCP monitor and an stdio monitor and both work (under Wine that is). Stefan, can you please take care of shepherding the patches in (pinging etc.)? Paolo Bonzini (6): slirp: use socket_set_nonblock main loop: use msec-based timeout in glib_select_fill main-loop: disable fd_set-based glib integration under w32 main-loop: interrupt wait when data arrives on a socket main-loop: replace WaitForMultipleObjects with g_poll main-loop: integrate glib sources for w32 main-loop.c | 147 +++++++++++++++++++++++++++++++----------------------- main-loop.h | 1 + oslib-win32.c | 3 + slirp/misc.c | 46 +---------------- slirp/tcp_subr.c | 4 +- 5 files changed, 92 insertions(+), 109 deletions(-) -- 1.7.7.6