Possible last try to fix async imagre preload race conditions.
authorbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 23 Dec 2008 23:07:48 +0000 (23:07 +0000)
committerbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 23 Dec 2008 23:07:48 +0000 (23:07 +0000)
commit580b1e7352da9799ac640ab40b3ee97cbc8aa48b
tree9952519ee5e20f070dba28d58ae375d1c3385192
parent2cba317c98f3cbc42a77614fa5a967f3dc727340
Possible last try to fix async imagre preload race conditions.

 1 - use inlist as regular list uses non-thread safe mempool;
 2 - lock around image loading, so if main thread requests pixels right
     before worker thread is loading them, you don't get ie->info.module
     to NULL while it would be used (triggered from engines/common).
     Maybe this should be handled by a global mutex elsewhere instead of
     per-image mutex, but it has more granularity now.
 3 - emit "preloaded" callback if it was canceled to be loaded from main
     thread.

Please someone review these changes.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@38312 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33
src/lib/cache/evas_cache_image.c
src/lib/include/evas_common.h