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@xxxxxxxxxx> --- 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); } -- 2.13.5 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel