summaryrefslogtreecommitdiffstats
path: root/server/dcc-encoders.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/dcc-encoders.c')
-rw-r--r--server/dcc-encoders.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/server/dcc-encoders.c b/server/dcc-encoders.c
index 1f98d1a3..d8d6617e 100644
--- a/server/dcc-encoders.c
+++ b/server/dcc-encoders.c
@@ -472,3 +472,20 @@ void dcc_free_glz_drawable_instance(DisplayChannelClient *dcc,
free(glz_drawable);
}
}
+
+void dcc_free_glz_drawables_to_free(DisplayChannelClient* dcc)
+{
+ RingItem *ring_link;
+
+ if (!dcc->glz_dict) {
+ return;
+ }
+ pthread_mutex_lock(&dcc->glz_drawables_inst_to_free_lock);
+ while ((ring_link = ring_get_head(&dcc->glz_drawables_inst_to_free))) {
+ GlzDrawableInstanceItem *drawable_instance = SPICE_CONTAINEROF(ring_link,
+ GlzDrawableInstanceItem,
+ free_link);
+ dcc_free_glz_drawable_instance(dcc, drawable_instance);
+ }
+ pthread_mutex_unlock(&dcc->glz_drawables_inst_to_free_lock);
+}