summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main-loop.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/main-loop.c b/main-loop.c
index 24cf540e66..eb3b6e6253 100644
--- a/main-loop.c
+++ b/main-loop.c
@@ -425,7 +425,7 @@ static int os_host_main_loop_wait(uint32_t timeout)
if (nfds >= 0) {
ret = select(nfds + 1, &rfds, &wfds, &xfds, &tv0);
if (ret != 0) {
- /* TODO. */
+ timeout = 0;
}
}
@@ -439,6 +439,10 @@ static int os_host_main_loop_wait(uint32_t timeout)
poll_fds[n_poll_fds + i].events = G_IO_IN;
}
+ if (poll_timeout < 0 || timeout < poll_timeout) {
+ poll_timeout = timeout;
+ }
+
qemu_mutex_unlock_iothread();
ret = g_poll(poll_fds, n_poll_fds + w->num, poll_timeout);
qemu_mutex_lock_iothread();