[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for-1.5 2/2] main-loop: partial revert of 5e3bc7
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH for-1.5 2/2] main-loop: partial revert of 5e3bc73 |
Date: |
Thu, 16 May 2013 18:54:50 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130311 Thunderbird/17.0.4 |
Il 16/05/2013 17:36, Stefan Hajnoczi ha scritto:
> This patch reverts part of 5e3bc735d93dd23f074b5116fd11e1ad8cd4962f.
>
> Paolo Bonzini wrote this patch and commented:
>
> "WSAEventSelect is edge-triggered and the event will not be signaled if
> the socket handler does not consume all the data in the socket buffer."
>
> Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
> ---
> main-loop.c | 32 ++++++++++++++------------------
> 1 file changed, 14 insertions(+), 18 deletions(-)
>
> diff --git a/main-loop.c b/main-loop.c
> index 2b8eed7..cf36645 100644
> --- a/main-loop.c
> +++ b/main-loop.c
> @@ -394,6 +394,20 @@ static int os_host_main_loop_wait(uint32_t timeout)
> return ret;
> }
>
> + FD_ZERO(&rfds);
> + FD_ZERO(&wfds);
> + FD_ZERO(&xfds);
> + nfds = pollfds_fill(gpollfds, &rfds, &wfds, &xfds);
> + if (nfds >= 0) {
> + select_ret = select(nfds + 1, &rfds, &wfds, &xfds, &tv0);
> + if (select_ret != 0) {
> + timeout = 0;
> + }
> + if (select_ret > 0) {
> + pollfds_poll(gpollfds, nfds, &rfds, &wfds, &xfds);
> + }
> + }
> +
> g_main_context_prepare(context, &max_priority);
> n_poll_fds = g_main_context_query(context, max_priority, &poll_timeout,
> poll_fds, ARRAY_SIZE(poll_fds));
> @@ -426,24 +440,6 @@ static int os_host_main_loop_wait(uint32_t timeout)
> g_main_context_dispatch(context);
> }
>
> - /* Call select after g_poll to avoid a useless iteration and therefore
> - * improve socket latency.
> - */
> -
> - FD_ZERO(&rfds);
> - FD_ZERO(&wfds);
> - FD_ZERO(&xfds);
> - nfds = pollfds_fill(gpollfds, &rfds, &wfds, &xfds);
> - if (nfds >= 0) {
> - select_ret = select(nfds + 1, &rfds, &wfds, &xfds, &tv0);
> - if (select_ret != 0) {
> - timeout = 0;
> - }
> - if (select_ret > 0) {
> - pollfds_poll(gpollfds, nfds, &rfds, &wfds, &xfds);
> - }
> - }
> -
> return select_ret || g_poll_ret;
> }
> #endif
>
- [Qemu-devel] [PATCH for-1.5 0/2] main-loop: fix slirp on win32, Stefan Hajnoczi, 2013/05/16
- [Qemu-devel] [PATCH for-1.5 2/2] main-loop: partial revert of 5e3bc73, Stefan Hajnoczi, 2013/05/16
- Re: [Qemu-devel] [PATCH for-1.5 2/2] main-loop: partial revert of 5e3bc73,
Paolo Bonzini <=
- [Qemu-devel] [PATCH for-1.5 1/2] main-loop: narrow win32 pollfds_fill() event bitmasks, Stefan Hajnoczi, 2013/05/16
- Re: [Qemu-devel] [PATCH for-1.5 0/2] main-loop: fix slirp on win32, Paolo Bonzini, 2013/05/16
- Re: [Qemu-devel] [PATCH for-1.5 0/2] main-loop: fix slirp on win32, TeLeMan, 2013/05/16
- Re: [Qemu-devel] [PATCH for-1.5 0/2] main-loop: fix slirp on win32, Anthony Liguori, 2013/05/22