diff options
| author | Izik Eidus <ieidus@redhat.com> | 2010-04-09 22:47:03 +0300 |
|---|---|---|
| committer | Izik Eidus <ieidus@redhat.com> | 2010-04-09 22:47:03 +0300 |
| commit | 03fb4e05be48fb47ff38b100e649f9aa263ceb58 (patch) | |
| tree | 0ac7863e38d72ec212b7fb8cd96ece7309b9f2f2 | |
| parent | 34fb3f680618b8735322462bd692fb2923ea3027 (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.c | 4 |
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) |
