[Spice-devel] [RfC fix] async thread fix - handle EAGAIN/EINTR, remove fprintf

Alon Levy alevy at redhat.com
Fri Jun 24 05:52:05 PDT 2011


---
 hw/qxl.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/hw/qxl.c b/hw/qxl.c
index dd42a40..51a5270 100644
--- a/hw/qxl.c
+++ b/hw/qxl.c
@@ -1012,13 +1012,15 @@ static void *ioport_write_async(void *arg)
 
     while (true) {
         ret = read(d->aio_pipe[0], &io, sizeof(io));
+        if (ret < 0 && (errno == EAGAIN || errno == EINTR)) {
+            continue;
+        }
         if (ret != sizeof(io)) {
             break;
         }
         io_port = io->port;
         val = io->val;
 
-        fprintf(stderr, "%s: 0x%x\n", __FUNCTION__, io_port);
         switch (io_port) {
         case QXL_IO_UPDATE_AREA_ASYNC:
             qemu_spice_update_area(&d->ssd, io->update_surface,
-- 
1.7.5.4



More information about the Spice-devel mailing list