[Spice-devel] [PATCH spice-server 16/16] red-worker: Start processing commands as soon as possible

Frediano Ziglio fziglio at redhat.com
Mon Sep 11 08:03:18 UTC 2017


ping

> 
> When the worker is started it could take a while to start
> processing commands.
> The reason is that the dispatcher handler is called after
> the worker so GLib will receive a FALSE answer to both
> prepare and check callbacks of the RedWorkerSource causing
> GLib to wait till another event is received.
> This is a regression since the introduction of GLib event
> loop, before the command processing was always attempted
> after any events.
> Setting the event_timeout to 0 cause the prepare callback
> to return TRUE so GLib will dispatch the RedWorkerSource.
> This was discovered attempting to use the tests in server/tests
> directory to reproduce a leak in RedWorker.
> 
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>  server/red-worker.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/server/red-worker.c b/server/red-worker.c
> index 594dec55..c02674ba 100644
> --- a/server/red-worker.c
> +++ b/server/red-worker.c
> @@ -635,6 +635,7 @@ static void handle_dev_start(void *opaque, void *payload)
>          display_channel_wait_for_migrate_data(worker->display_channel);
>      }
>      worker->running = TRUE;
> +    worker->event_timeout = 0;
>      guest_set_client_capabilities(worker);
>  }
>  


More information about the Spice-devel mailing list