forked from enlightenment/efl
fix possible thread lock issue - scalecache wasnt locked in 1
circumstance. SVN revision: 56037
This commit is contained in:
parent
3ed55a28d8
commit
04ab07667b
|
@ -247,6 +247,7 @@ _sci_find(RGBA_Image *im,
|
||||||
_sci_fix_newest(im);
|
_sci_fix_newest(im);
|
||||||
if (sci->im)
|
if (sci->im)
|
||||||
{
|
{
|
||||||
|
LKL(cache_lock);
|
||||||
evas_common_rgba_image_free(&sci->im->cache_entry);
|
evas_common_rgba_image_free(&sci->im->cache_entry);
|
||||||
if (!sci->forced_unload)
|
if (!sci->forced_unload)
|
||||||
cache_size -= sci->dst_w * sci->dst_h * 4;
|
cache_size -= sci->dst_w * sci->dst_h * 4;
|
||||||
|
@ -254,6 +255,7 @@ _sci_find(RGBA_Image *im,
|
||||||
cache_size -= sci->size_adjust;
|
cache_size -= sci->size_adjust;
|
||||||
// INF(" 1- %i", sci->dst_w * sci->dst_h * 4);
|
// INF(" 1- %i", sci->dst_w * sci->dst_h * 4);
|
||||||
cache_list = eina_inlist_remove(cache_list, (Eina_Inlist *)sci);
|
cache_list = eina_inlist_remove(cache_list, (Eina_Inlist *)sci);
|
||||||
|
LKU(cache_lock);
|
||||||
}
|
}
|
||||||
#ifdef EVAS_FRAME_QUEUING
|
#ifdef EVAS_FRAME_QUEUING
|
||||||
RWLKU(sci->lock);
|
RWLKU(sci->lock);
|
||||||
|
@ -309,6 +311,7 @@ _cache_prune(Scaleitem *notsci, Eina_Bool copies_only)
|
||||||
#endif
|
#endif
|
||||||
if (sci->im)
|
if (sci->im)
|
||||||
{
|
{
|
||||||
|
LKL(cache_lock);
|
||||||
evas_common_rgba_image_free(&sci->im->cache_entry);
|
evas_common_rgba_image_free(&sci->im->cache_entry);
|
||||||
sci->im = NULL;
|
sci->im = NULL;
|
||||||
sci->usage = 0;
|
sci->usage = 0;
|
||||||
|
@ -321,6 +324,7 @@ _cache_prune(Scaleitem *notsci, Eina_Bool copies_only)
|
||||||
// INF(" 2- %i", sci->dst_w * sci->dst_h * 4);
|
// INF(" 2- %i", sci->dst_w * sci->dst_h * 4);
|
||||||
cache_list = eina_inlist_remove(cache_list, (Eina_Inlist *)sci);
|
cache_list = eina_inlist_remove(cache_list, (Eina_Inlist *)sci);
|
||||||
memset(sci, 0, sizeof(Eina_Inlist));
|
memset(sci, 0, sizeof(Eina_Inlist));
|
||||||
|
LKU(cache_lock);
|
||||||
}
|
}
|
||||||
#ifdef EVAS_FRAME_QUEUING
|
#ifdef EVAS_FRAME_QUEUING
|
||||||
RWLKU(sci->lock);
|
RWLKU(sci->lock);
|
||||||
|
|
Loading…
Reference in New Issue