From 3ad3807a5c4039618175c042a1121c926c2c62e9 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Tue, 29 Nov 2011 11:42:32 -0800 Subject: [PATCH] BitTube::read now handles EAGAIN Change-Id: Iacda2386342ba0727bbf278f6c597488d5467bb8 --- libs/gui/BitTube.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libs/gui/BitTube.cpp b/libs/gui/BitTube.cpp index c632b43cd0..fa8d0eabca 100644 --- a/libs/gui/BitTube.cpp +++ b/libs/gui/BitTube.cpp @@ -97,6 +97,11 @@ ssize_t BitTube::read(void* vaddr, size_t size) len = ::read(mReceiveFd, vaddr, size); err = len < 0 ? errno : 0; } while (err == EINTR); + if (err == EAGAIN || err == EWOULDBLOCK) { + // EAGAIN means that we have non-blocking I/O but there was + // no data to be read. Nothing the client should care about. + return 0; + } return err == 0 ? len : -err; } -- 2.11.0