[Spice-devel] [PATCH 01/11] worker: fix timer queue creation

Frediano Ziglio fziglio at redhat.com
Tue Oct 27 12:19:05 PDT 2015


Timer queue is attached to current thread when created so it must be
created from the proper thread.
After worker initialization was moved to main thread the queue was
created in the wrong thread causing program to fail saying that
the queue is NULL.

Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 server/red_worker.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/server/red_worker.c b/server/red_worker.c
index ce2f9e2..965a14d 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -11671,10 +11671,6 @@ RedWorker* red_worker_new(QXLInstance *qxl, RedDispatcher *red_dispatcher)
     spice_warn_if(init_info.n_surfaces > NUM_SURFACES);
     worker->n_surfaces = init_info.n_surfaces;
 
-    if (!spice_timer_queue_create()) {
-        spice_error("failed to create timer queue");
-    }
-
     red_init_quic(worker);
     red_init_lz(worker);
     red_init_jpeg(worker);
@@ -11702,6 +11698,10 @@ SPICE_GNUC_NORETURN static void *red_worker_main(void *arg)
     spice_assert(MAX_PIPE_SIZE > WIDE_CLIENT_ACK_WINDOW &&
            MAX_PIPE_SIZE > NARROW_CLIENT_ACK_WINDOW); //ensure wakeup by ack message
 
+    if (!spice_timer_queue_create()) {
+        spice_error("failed to create timer queue");
+    }
+
     if (pthread_getcpuclockid(pthread_self(), &worker->clockid)) {
         spice_warning("getcpuclockid failed");
     }
-- 
2.4.3



More information about the Spice-devel mailing list