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

-- 


Reply via email to