Il 27/04/2012 17:02, Stefan Weil ha scritto: > diff --git a/main-loop.c b/main-loop.c > index 0457bf2..24cf540 100644 > --- a/main-loop.c > +++ b/main-loop.c > @@ -410,6 +410,7 @@ static int os_host_main_loop_wait(uint32_t timeout) > int ret, i; > PollingEntry *pe; > WaitObjects *w = &wait_objects; > + gint poll_timeout; > static struct timeval tv0; > > /* XXX: need to suppress polling by better using win32 events */ > @@ -424,12 +425,12 @@ static int os_host_main_loop_wait(uint32_t timeout) > if (nfds >= 0) { > ret = select(nfds + 1, &rfds, &wfds, &xfds, &tv0); > if (ret != 0) { > - timeout = 0; > + /* TODO. */
Please leave timeout = 0 here and... > } > } > > g_main_context_prepare(context, &max_priority); > - n_poll_fds = g_main_context_query(context, max_priority, &timeout, > + n_poll_fds = g_main_context_query(context, max_priority, &poll_timeout, > poll_fds, ARRAY_SIZE(poll_fds)); > g_assert(n_poll_fds <= ARRAY_SIZE(poll_fds)); > > @@ -439,7 +440,7 @@ static int os_host_main_loop_wait(uint32_t timeout) > } > > qemu_mutex_unlock_iothread(); > - ret = g_poll(poll_fds, n_poll_fds + w->num, timeout); ... here do: if (poll_timeout == INFINITE || timeout < poll_timeout) { poll_timeout = timeout; } > + ret = g_poll(poll_fds, n_poll_fds + w->num, poll_timeout); > qemu_mutex_lock_iothread(); > if (ret > 0) { > for (i = 0; i < w->num; i++) { Thanks for fixing the breakage. Paolo