Commit 3239ad04 authored by Stefan Weil's avatar Stefan Weil Committed by Blue Swirl
Browse files

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: default avatarStefan Weil <sw@weilnetz.de>
Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Signed-off-by: default avatarBlue Swirl <blauwirbel@gmail.com>
parent 1b296044
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -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();