vnc-jobs.c (a3206972a9eab65ec8e8f9ae320ad628ba4b58f1) vnc-jobs.c (543b95801f98ab2cb7413c39779fd5b7f363ce3d)
1/*
2 * QEMU VNC display driver
3 *
4 * Copyright (C) 2006 Anthony Liguori <anthony@codemonkey.ws>
5 * Copyright (C) 2006 Fabrice Bellard
6 * Copyright (C) 2009 Red Hat, Inc
7 * Copyright (C) 2010 Corentin Chary <corentin.chary@gmail.com>
8 *

--- 204 unchanged lines hidden (view full) ---

213static int vnc_worker_thread_loop(VncJobQueue *queue)
214{
215 VncJob *job;
216 VncRectEntry *entry, *tmp;
217 VncState vs;
218 int n_rectangles;
219 int saved_offset;
220
1/*
2 * QEMU VNC display driver
3 *
4 * Copyright (C) 2006 Anthony Liguori <anthony@codemonkey.ws>
5 * Copyright (C) 2006 Fabrice Bellard
6 * Copyright (C) 2009 Red Hat, Inc
7 * Copyright (C) 2010 Corentin Chary <corentin.chary@gmail.com>
8 *

--- 204 unchanged lines hidden (view full) ---

213static int vnc_worker_thread_loop(VncJobQueue *queue)
214{
215 VncJob *job;
216 VncRectEntry *entry, *tmp;
217 VncState vs;
218 int n_rectangles;
219 int saved_offset;
220
221 buffer_init(&vs.output, "vnc-worker-output");
222
221 vnc_lock_queue(queue);
222 while (QTAILQ_EMPTY(&queue->jobs) && !queue->exit) {
223 qemu_cond_wait(&queue->cond, &queue->mutex);
224 }
225 /* Here job can only be NULL if queue->exit is true */
226 job = QTAILQ_FIRST(&queue->jobs);
227 vnc_unlock_queue(queue);
228

--- 68 unchanged lines hidden (view full) ---

297}
298
299static VncJobQueue *vnc_queue_init(void)
300{
301 VncJobQueue *queue = g_malloc0(sizeof(VncJobQueue));
302
303 qemu_cond_init(&queue->cond);
304 qemu_mutex_init(&queue->mutex);
223 vnc_lock_queue(queue);
224 while (QTAILQ_EMPTY(&queue->jobs) && !queue->exit) {
225 qemu_cond_wait(&queue->cond, &queue->mutex);
226 }
227 /* Here job can only be NULL if queue->exit is true */
228 job = QTAILQ_FIRST(&queue->jobs);
229 vnc_unlock_queue(queue);
230

--- 68 unchanged lines hidden (view full) ---

299}
300
301static VncJobQueue *vnc_queue_init(void)
302{
303 VncJobQueue *queue = g_malloc0(sizeof(VncJobQueue));
304
305 qemu_cond_init(&queue->cond);
306 qemu_mutex_init(&queue->mutex);
307 buffer_init(&queue->buffer, "vnc-job-queue");
305 QTAILQ_INIT(&queue->jobs);
306 return queue;
307}
308
309static void vnc_queue_clear(VncJobQueue *q)
310{
311 qemu_cond_destroy(&queue->cond);
312 qemu_mutex_destroy(&queue->mutex);

--- 33 unchanged lines hidden ---
308 QTAILQ_INIT(&queue->jobs);
309 return queue;
310}
311
312static void vnc_queue_clear(VncJobQueue *q)
313{
314 qemu_cond_destroy(&queue->cond);
315 qemu_mutex_destroy(&queue->mutex);

--- 33 unchanged lines hidden ---