diff options
author | Stefan Weil <sw@weilnetz.de> | 2012-04-29 19:15:02 +0200 |
---|---|---|
committer | Blue Swirl <blauwirbel@gmail.com> | 2012-05-01 10:46:25 +0000 |
commit | 3239ad04695f95ce060bdc2a0a6e1243d2068971 (patch) | |
tree | 1afc5d6925ef1d653649a8dda9d9359a28bec2b7 | |
parent | 1b296044b6fa46757f755c86e05ed3bf99d78f26 (diff) |
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 <sw@weilnetz.de>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
-rw-r--r-- | main-loop.c | 6 |
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(); |