LKL(im->lock);
#endif
+ im->flags.in_progress = EINA_TRUE;
error = cache->func.load(im);
+ im->flags.in_progress = EINA_FALSE;
+
#ifdef BUILD_ASYNC_PRELOAD
LKU(im->lock);
#endif
assert(im->cache);
cache = im->cache;
+ if (im->flags.in_progress) return ;
+
+ evas_cache_image_preload_cancel(im, NULL);
+
#ifdef BUILD_ASYNC_PRELOAD
LKL(im->lock);
#endif
- if ((!im->flags.loaded) || (!im->file) ||
+ if ((!im->flags.loaded) || (!im->file) ||
(!im->info.module) || (im->flags.dirty))
{
#ifdef BUILD_ASYNC_PRELOAD
}
evas_common_rgba_image_scalecache_dirty(im);
cache->func.destructor(im);
-
+
#ifdef BUILD_ASYNC_PRELOAD
LKU(im->lock);
#endif
{
RGBA_Image *im = (RGBA_Image *) ie;
- evas_cache_image_preload_cancel(ie, NULL);
-
if (!ie->flags.loaded) return;
if ((!ie->info.module) && (!ie->data1)) return;
if (!ie->file) return;