forked from enlightenment/efl
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
This commit is contained in:
parent
eec2daf31b
commit
24a1c444b0
|
@ -788,10 +788,11 @@ evas_common_rgba_image_scalecache_do_cbs(Image_Entry *ie, RGBA_Image *dst,
|
||||||
{
|
{
|
||||||
static RGBA_Draw_Context *ct = NULL;
|
static RGBA_Draw_Context *ct = NULL;
|
||||||
|
|
||||||
SLKL(cache_lock);
|
|
||||||
im->cache.orig_usage++;
|
im->cache.orig_usage++;
|
||||||
im->cache.usage_count = use_counter;
|
im->cache.usage_count = use_counter;
|
||||||
im->cache.populate_count--;
|
im->cache.populate_count--;
|
||||||
|
SLKU(im->cache.lock);
|
||||||
|
SLKL(cache_lock);
|
||||||
// pops++;
|
// pops++;
|
||||||
if (!ct)
|
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();
|
ct = evas_common_draw_context_new();
|
||||||
evas_common_draw_context_set_render_op(ct, _EVAS_RENDER_COPY);
|
evas_common_draw_context_set_render_op(ct, _EVAS_RENDER_COPY);
|
||||||
}
|
}
|
||||||
SLKU(im->cache.lock);
|
|
||||||
if (im->cache_entry.space == EVAS_COLORSPACE_ARGB8888)
|
if (im->cache_entry.space == EVAS_COLORSPACE_ARGB8888)
|
||||||
{
|
{
|
||||||
#ifdef EVAS_CSERVE2
|
#ifdef EVAS_CSERVE2
|
||||||
|
|
Loading…
Reference in New Issue