}
SLKU(current->lock_cancel);
SLKU(current->lock);
+
+ LKL(wakeup);
+ current->flags.preload_pending = 0;
+ LKU(wakeup);
}
static void
ie->preload = NULL;
ie->flags.preload_done = ie->flags.loaded;
ie->flags.updated_data = 1;
+
+ LKL(wakeup);
+ ie->flags.preload_pending = 0;
+ LKU(wakeup);
+
while ((tmp = ie->targets))
{
evas_object_inform_call_image_preloaded((Evas_Object*) tmp->target);
ie->preload = NULL;
ie->cache->pending = eina_list_remove(ie->cache->pending, ie);
+
+ LKL(wakeup);
+ ie->flags.preload_pending = 0;
+ LKU(wakeup);
+
if ((ie->flags.delete_me) || (ie->flags.dirty))
{
ie->flags.delete_me = 0;
{
ie->cache->preload = eina_list_append(ie->cache->preload, ie);
ie->flags.pending = 0;
+ LKL(wakeup);
+ ie->flags.preload_pending = 1;
+ LKU(wakeup);
ie->preload = evas_preload_thread_run(_evas_cache_image_async_heavy,
_evas_cache_image_async_end,
_evas_cache_image_async_cancel,
evas_preload_thread_cancel(im->preload);
}
evas_async_events_process();
-
+
LKL(wakeup);
- while (im->preload)
+ while (im->flags.preload_pending)
{
eina_condition_wait(&cond_wakeup);
LKU(wakeup);