From 3239ad04695f95ce060bdc2a0a6e1243d2068971 Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Sun, 29 Apr 2012 19:15:02 +0200 Subject: main-loop: Calculate poll timeout using timeout argument The timeout argument was unused up to now, but it can be used to reduce the poll_timeout when it is infinite (negative value) or larger than timeout. Signed-off-by: Stefan Weil Reviewed-by: Paolo Bonzini Signed-off-by: Blue Swirl --- main-loop.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'main-loop.c') 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(); -- cgit v1.2.1