aboutsummaryrefslogtreecommitdiffstats
path: root/aio-android.c
diff options
context:
space:
mode:
authorOt ten Thije <ottenthije@google.com>2010-07-19 13:10:18 +0100
committerOt ten Thije <ottenthije@google.com>2010-07-28 09:39:07 +0100
commitcc19d3eeef59cbd354c1c618f7421d6fe5e0a098 (patch)
tree3e5d5b38c9be72c8013b1efbd1897e6792110795 /aio-android.c
parent2fa5173bd1ce7341c50adac676a317945f0969c7 (diff)
downloadexternal_qemu-cc19d3eeef59cbd354c1c618f7421d6fe5e0a098.zip
external_qemu-cc19d3eeef59cbd354c1c618f7421d6fe5e0a098.tar.gz
external_qemu-cc19d3eeef59cbd354c1c618f7421d6fe5e0a098.tar.bz2
Fixed infinite loop in qemu_aio_wait() affecting savevm.
Solved by porting a check on AIO operations from QEMU mainline (in mainline commit a76bab4952a1539266490295fb50b78802c467c2). Change-Id: I1d2011776f7cb90d81e36a5cf9381ef956d9a5b9
Diffstat (limited to 'aio-android.c')
-rw-r--r--aio-android.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/aio-android.c b/aio-android.c
index 53f7a6d..2b67579 100644
--- a/aio-android.c
+++ b/aio-android.c
@@ -151,6 +151,11 @@ void qemu_aio_wait(void)
walking_handlers = 0;
+ /* No AIO operations? Get us out of here */
+ if (!iolooper_has_operations(looper)) {
+ break;
+ }
+
/* wait until next event */
ret = iolooper_wait(looper, -1);