could have a cache deadlock here as _sci_find is called from with

already locked caches.



SVN revision: 59063
This commit is contained in:
Carsten Haitzler 2011-05-01 06:24:02 +00:00
parent c7b9d3d14e
commit f2e2d8963a
1 changed files with 2 additions and 2 deletions

View File

@ -100,6 +100,7 @@ evas_common_rgba_image_scalecache_init(Image_Entry *ie)
{
#ifdef SCALECACHE
RGBA_Image *im = (RGBA_Image *)ie;
// NOTE: this conflicts with evas image cache init and del of lock
LKI(im->cache.lock);
#endif
}
@ -110,6 +111,7 @@ evas_common_rgba_image_scalecache_shutdown(Image_Entry *ie)
#ifdef SCALECACHE
RGBA_Image *im = (RGBA_Image *)ie;
evas_common_rgba_image_scalecache_dirty(ie);
// NOTE: this conflicts with evas image cache init and del of lock
LKD(im->cache.lock);
#endif
}
@ -247,7 +249,6 @@ _sci_find(RGBA_Image *im,
_sci_fix_newest(im);
if (sci->im)
{
LKL(cache_lock);
evas_common_rgba_image_free(&sci->im->cache_entry);
if (!sci->forced_unload)
cache_size -= sci->dst_w * sci->dst_h * 4;
@ -255,7 +256,6 @@ _sci_find(RGBA_Image *im,
cache_size -= sci->size_adjust;
// INF(" 1- %i", sci->dst_w * sci->dst_h * 4);
cache_list = eina_inlist_remove(cache_list, (Eina_Inlist *)sci);
LKU(cache_lock);
}
#ifdef EVAS_FRAME_QUEUING
RWLKU(sci->lock);