[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/3] loop write in qemu_event_increment upon EINTR
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 2/3] loop write in qemu_event_increment upon EINTR |
Date: |
Tue, 2 Feb 2010 20:33:10 +0100 |
Same as what qemu-kvm does.
Signed-off-by: Paolo Bonzini <address@hidden>
---
vl.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/vl.c b/vl.c
index 46c1118..f150eca 100644
--- a/vl.c
+++ b/vl.c
@@ -3198,8 +3198,12 @@ static void qemu_event_increment(void)
if (io_thread_fd == -1)
return;
- ret = write(io_thread_fd, &byte, sizeof(byte));
- if (ret < 0 && (errno != EINTR && errno != EAGAIN)) {
+ do {
+ ret = write(io_thread_fd, &byte, sizeof(byte));
+ } while (ret < 0 && errno == EINTR);
+
+ /* EAGAIN is fine, a read must be pending. */
+ if (ret < 0 && errno != EAGAIN) {
fprintf(stderr, "qemu_event_increment: write() filed: %s\n",
strerror(errno));
exit (1);
--
1.6.6