evas preload: do not lock mutex aready locked.
authorbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 23 Jan 2009 22:21:04 +0000 (22:21 +0000)
committerbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 23 Jan 2009 22:21:04 +0000 (22:21 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@38749 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/cache/evas_cache_image.c

index d2d155d..a84b26f 100644 (file)
@@ -303,9 +303,8 @@ _evas_cache_image_entry_surface_alloc(Evas_Cache_Image *cache,
 
 #ifdef BUILD_ASYNC_PRELOAD
 static void
-_evas_cache_image_async_call(Image_Entry *im)
+_evas_cache_image_async_call__unlocked(Image_Entry *im)
 {
-   pthread_mutex_lock(&mutex);
    while (im->targets)
      {
        Evas_Cache_Target *tmp = im->targets;
@@ -315,6 +314,13 @@ _evas_cache_image_async_call(Image_Entry *im)
        im->targets = (Evas_Cache_Target*) eina_inlist_remove(EINA_INLIST_GET(im->targets), EINA_INLIST_GET(im->targets));
        free(tmp);
      }
+}
+
+static void
+_evas_cache_image_async_call(Image_Entry *im)
+{
+   pthread_mutex_lock(&mutex);
+   _evas_cache_image_async_call__unlocked(im);
    pthread_mutex_unlock(&mutex);
 }
 
@@ -407,7 +413,7 @@ _evas_cache_image_entry_preload_remove(Image_Entry *ie, const void *target)
                                    }
                                 }
                            } else {
-                              _evas_cache_image_async_call(ie);
+                              _evas_cache_image_async_call__unlocked(ie);
 
                               while (ie->targets)
                                 {