summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric BAIL <cedric@osg.samsung.com>2017-03-09 16:16:28 -0800
committerCedric BAIL <cedric@osg.samsung.com>2017-03-09 16:17:58 -0800
commit168d2a14460918f8b658add7e5d71807bd24ee19 (patch)
tree4b495b90767554d60e17b79a424a2cb8feef8457
parentff3c6f394eb5a944da75a5cc001a664fc4dfee69 (diff)
efreet: avoid crash during shutdown due to Ecore_Event queue.
-rw-r--r--src/lib/efreet/efreet_cache.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/lib/efreet/efreet_cache.c b/src/lib/efreet/efreet_cache.c
index 82ceaca802..a9d5bec428 100644
--- a/src/lib/efreet/efreet_cache.c
+++ b/src/lib/efreet/efreet_cache.c
@@ -274,9 +274,12 @@ efreet_cache_init(void)
274 ERR("Failed to create directory '%s'", buf); 274 ERR("Failed to create directory '%s'", buf);
275 } 275 }
276 276
277 EFREET_EVENT_ICON_CACHE_UPDATE = ecore_event_type_new(); 277 if (EFREET_EVENT_ICON_CACHE_UPDATE == 0)
278 EFREET_EVENT_DESKTOP_CACHE_UPDATE = ecore_event_type_new(); 278 {
279 EFREET_EVENT_DESKTOP_CACHE_BUILD = ecore_event_type_new(); 279 EFREET_EVENT_ICON_CACHE_UPDATE = ecore_event_type_new();
280 EFREET_EVENT_DESKTOP_CACHE_UPDATE = ecore_event_type_new();
281 EFREET_EVENT_DESKTOP_CACHE_BUILD = ecore_event_type_new();
282 }
280 283
281 themes = eina_hash_string_superfast_new(EINA_FREE_CB(efreet_cache_icon_theme_free)); 284 themes = eina_hash_string_superfast_new(EINA_FREE_CB(efreet_cache_icon_theme_free));
282 icons = eina_hash_string_superfast_new(EINA_FREE_CB(efreet_cache_icon_free)); 285 icons = eina_hash_string_superfast_new(EINA_FREE_CB(efreet_cache_icon_free));
@@ -342,6 +345,10 @@ efreet_cache_shutdown(void)
342{ 345{
343 Efreet_Old_Cache *d; 346 Efreet_Old_Cache *d;
344 347
348 ecore_event_type_flush(EFREET_EVENT_ICON_CACHE_UPDATE,
349 EFREET_EVENT_DESKTOP_CACHE_UPDATE,
350 EFREET_EVENT_DESKTOP_CACHE_BUILD);
351
345 IF_RELEASE(theme_name); 352 IF_RELEASE(theme_name);
346 353
347 icon_cache = efreet_cache_close(icon_cache); 354 icon_cache = efreet_cache_close(icon_cache);