raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=24a1c444b02f090578ac34774264fdaa6d102dd0
commit 24a1c444b02f090578ac34774264fdaa6d102dd0 Author: Carsten Haitzler (Rasterman) <[email protected]> Date: Thu Aug 14 18:10:11 2014 +0900 evas scalecache - fix thread deadlock posssibility there is a re-ordering of how locks are taken and this should cover that deadlock possibility. fixes CID 1106338 --- src/lib/evas/common/evas_image_scalecache.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/evas/common/evas_image_scalecache.c b/src/lib/evas/common/evas_image_scalecache.c index 1a8229f..1accf2b 100644 --- a/src/lib/evas/common/evas_image_scalecache.c +++ b/src/lib/evas/common/evas_image_scalecache.c @@ -788,10 +788,11 @@ evas_common_rgba_image_scalecache_do_cbs(Image_Entry *ie, RGBA_Image *dst, { static RGBA_Draw_Context *ct = NULL; - SLKL(cache_lock); im->cache.orig_usage++; im->cache.usage_count = use_counter; im->cache.populate_count--; + SLKU(im->cache.lock); + SLKL(cache_lock); // pops++; if (!ct) { @@ -800,7 +801,6 @@ evas_common_rgba_image_scalecache_do_cbs(Image_Entry *ie, RGBA_Image *dst, ct = evas_common_draw_context_new(); evas_common_draw_context_set_render_op(ct, _EVAS_RENDER_COPY); } - SLKU(im->cache.lock); if (im->cache_entry.space == EVAS_COLORSPACE_ARGB8888) { #ifdef EVAS_CSERVE2 --
