summaryrefslogtreecommitdiffstats
path: root/server/red_worker.c
diff options
context:
space:
mode:
authorFrediano Ziglio <fziglio@redhat.com>2015-10-26 15:27:17 +0000
committerFrediano Ziglio <fziglio@redhat.com>2015-10-28 15:28:29 +0000
commit0b386603cbcd14bcbd0eb8faec2015c437f7a2a8 (patch)
tree3e218b25723a9ae1b60795eb96155d30d23e1885 /server/red_worker.c
parentf55032ecba46b5f58bfbaee42ab9eb61c0c9e20d (diff)
downloadspice-0b386603cbcd14bcbd0eb8faec2015c437f7a2a8.tar.gz
spice-0b386603cbcd14bcbd0eb8faec2015c437f7a2a8.tar.xz
spice-0b386603cbcd14bcbd0eb8faec2015c437f7a2a8.zip
worker: fix timer queue creation
Timer queue is attached to current thread when created so it must be created from the proper thread. After worker initialization is moved in a following patch 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@redhat.com> Acked-by: Uri Lublin <ulublin@redhat.com>
Diffstat (limited to 'server/red_worker.c')
-rw-r--r--server/red_worker.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/server/red_worker.c b/server/red_worker.c
index ce2f9e26..965a14d4 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");
}