From 03fb4e05be48fb47ff38b100e649f9aa263ceb58 Mon Sep 17 00:00:00 2001 From: Izik Eidus Date: Fri, 9 Apr 2010 22:47:03 +0300 Subject: [PATCH] take the right lock when freeing glz stuff of surfaces this was noticed by Yonit. Signed-off-by: Izik Eidus --- server/red_worker.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/red_worker.c b/server/red_worker.c index 40781452..6f724192 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -1799,14 +1799,14 @@ static void red_clear_surface_glz_drawables(RedWorker *worker, int surface_id) return; } - pthread_mutex_lock(&worker->display_channel->glz_drawables_inst_to_free_lock); + pthread_rwlock_wrlock(&worker->display_channel->glz_dict->encode_lock); while ((ring_item = ring_get_head(&worker->surfaces[surface_id].glz_drawables))) { RedGlzDrawable *now = SPICE_CONTAINEROF(ring_item, RedGlzDrawable, surface_link); red_display_free_glz_drawable(worker->display_channel, now); } - pthread_mutex_unlock(&worker->display_channel->glz_drawables_inst_to_free_lock); + pthread_rwlock_unlock(&worker->display_channel->glz_dict->encode_lock); } static void red_clear_surface_drawables_from_pipe(RedWorker *worker, int surface_id)