diff options
author | Frediano Ziglio <fziglio@redhat.com> | 2015-10-26 15:27:17 +0000 |
---|---|---|
committer | Frediano Ziglio <fziglio@redhat.com> | 2015-10-28 15:28:29 +0000 |
commit | 0b386603cbcd14bcbd0eb8faec2015c437f7a2a8 (patch) | |
tree | 3e218b25723a9ae1b60795eb96155d30d23e1885 | |
parent | f55032ecba46b5f58bfbaee42ab9eb61c0c9e20d (diff) | |
download | spice-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>
-rw-r--r-- | server/red_worker.c | 8 |
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"); } |