From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36363) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1adhuo-0008Co-MW for qemu-devel@nongnu.org; Wed, 09 Mar 2016 12:28:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1adhun-0005yu-QK for qemu-devel@nongnu.org; Wed, 09 Mar 2016 12:28:54 -0500 Received: from mx1.redhat.com ([209.132.183.28]:35029) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1adhun-0005yp-K9 for qemu-devel@nongnu.org; Wed, 09 Mar 2016 12:28:53 -0500 From: "Daniel P. Berrange" Date: Wed, 9 Mar 2016 17:28:12 +0000 Message-Id: <1457544504-8548-10-git-send-email-berrange@redhat.com> In-Reply-To: <1457544504-8548-1-git-send-email-berrange@redhat.com> References: <1457544504-8548-1-git-send-email-berrange@redhat.com> Subject: [Qemu-devel] [PATCH v1 09/21] io: add missing EWOULDBLOCK checks in Win32 I/O code paths List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Andrew Baumann , Stefan Weil On Win32 EWOULDBLOCK is not the same as EAGAIN, so we must check both errnos after send/recv. Some places already checked both, a couple of cases were previously missed. Signed-off-by: Daniel P. Berrange --- io/channel-socket.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/io/channel-socket.c b/io/channel-socket.c index 5f087e6..1de5cc0 100644 --- a/io/channel-socket.c +++ b/io/channel-socket.c @@ -559,7 +559,8 @@ static ssize_t qio_channel_socket_readv(QIOChannel *ioc, iov[i].iov_len, 0); if (ret < 0) { - if (socket_error() == EAGAIN) { + if (socket_error() == EAGAIN || + socket_error() == EWOULDBLOCK) { if (done) { return done; } else { @@ -601,7 +602,8 @@ static ssize_t qio_channel_socket_writev(QIOChannel *ioc, iov[i].iov_len, 0); if (ret < 0) { - if (socket_error() == EAGAIN) { + if (socket_error() == EAGAIN || + socket_error() == EWOULDBLOCK) { if (done) { return done; } else { -- 2.5.0