cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=168d2a14460918f8b658add7e5d71807bd24ee19

commit 168d2a14460918f8b658add7e5d71807bd24ee19
Author: Cedric BAIL <ced...@osg.samsung.com>
Date:   Thu Mar 9 16:16:28 2017 -0800

    efreet: avoid crash during shutdown due to Ecore_Event queue.
---
 src/lib/efreet/efreet_cache.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/lib/efreet/efreet_cache.c b/src/lib/efreet/efreet_cache.c
index 82ceaca..a9d5bec 100644
--- a/src/lib/efreet/efreet_cache.c
+++ b/src/lib/efreet/efreet_cache.c
@@ -274,9 +274,12 @@ efreet_cache_init(void)
         ERR("Failed to create directory '%s'", buf);
     }
 
-    EFREET_EVENT_ICON_CACHE_UPDATE = ecore_event_type_new();
-    EFREET_EVENT_DESKTOP_CACHE_UPDATE = ecore_event_type_new();
-    EFREET_EVENT_DESKTOP_CACHE_BUILD = ecore_event_type_new();
+    if (EFREET_EVENT_ICON_CACHE_UPDATE == 0)
+      {
+         EFREET_EVENT_ICON_CACHE_UPDATE = ecore_event_type_new();
+         EFREET_EVENT_DESKTOP_CACHE_UPDATE = ecore_event_type_new();
+         EFREET_EVENT_DESKTOP_CACHE_BUILD = ecore_event_type_new();
+      }
 
     themes = 
eina_hash_string_superfast_new(EINA_FREE_CB(efreet_cache_icon_theme_free));
     icons = 
eina_hash_string_superfast_new(EINA_FREE_CB(efreet_cache_icon_free));
@@ -342,6 +345,10 @@ efreet_cache_shutdown(void)
 {
     Efreet_Old_Cache *d;
 
+    ecore_event_type_flush(EFREET_EVENT_ICON_CACHE_UPDATE,
+                           EFREET_EVENT_DESKTOP_CACHE_UPDATE,
+                           EFREET_EVENT_DESKTOP_CACHE_BUILD);
+
     IF_RELEASE(theme_name);
 
     icon_cache = efreet_cache_close(icon_cache);

-- 


Reply via email to