summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIzik Eidus <ieidus@redhat.com>2010-04-09 22:47:03 +0300
committerIzik Eidus <ieidus@redhat.com>2010-04-09 22:47:03 +0300
commit03fb4e05be48fb47ff38b100e649f9aa263ceb58 (patch)
tree0ac7863e38d72ec212b7fb8cd96ece7309b9f2f2
parent34fb3f680618b8735322462bd692fb2923ea3027 (diff)
take the right lock when freeing glz stuff of surfaces
this was noticed by Yonit. Signed-off-by: Izik Eidus <ieidus@redhat.com>
-rw-r--r--server/red_worker.c4
1 files 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)