forked from enlightenment/efl
efreet: reset ipc connection after fork
ensure that existing connection is not reused
This commit is contained in:
parent
aaf3659faf
commit
10ce0cbd8a
|
@ -181,6 +181,22 @@ _cb_server_del(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
|
||||||
return ECORE_CALLBACK_DONE;
|
return ECORE_CALLBACK_DONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_efreet_cache_reset()
|
||||||
|
{
|
||||||
|
const char *s;
|
||||||
|
int len = 0;
|
||||||
|
|
||||||
|
if (ipc) ecore_ipc_server_del(ipc);
|
||||||
|
ipc = ecore_ipc_server_connect(ECORE_IPC_LOCAL_USER, "efreetd", 0, NULL);
|
||||||
|
if (!ipc) return;
|
||||||
|
|
||||||
|
s = efreet_language_get();
|
||||||
|
if (s) len = strlen(s);
|
||||||
|
ecore_ipc_server_send(ipc, 1, 0, 0, 0, 0, s, len);
|
||||||
|
efreet_icon_extensions_refresh();
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_icon_desktop_cache_update_event_add(int event_type)
|
_icon_desktop_cache_update_event_add(int event_type)
|
||||||
{
|
{
|
||||||
|
@ -330,6 +346,7 @@ efreet_cache_init(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ecore_fork_reset_callback_add(_efreet_cache_reset, NULL);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
error:
|
error:
|
||||||
|
@ -354,7 +371,7 @@ efreet_cache_shutdown(void)
|
||||||
ecore_event_type_flush(EFREET_EVENT_ICON_CACHE_UPDATE,
|
ecore_event_type_flush(EFREET_EVENT_ICON_CACHE_UPDATE,
|
||||||
EFREET_EVENT_DESKTOP_CACHE_UPDATE,
|
EFREET_EVENT_DESKTOP_CACHE_UPDATE,
|
||||||
EFREET_EVENT_DESKTOP_CACHE_BUILD);
|
EFREET_EVENT_DESKTOP_CACHE_BUILD);
|
||||||
|
ecore_fork_reset_callback_del(_efreet_cache_reset, NULL);
|
||||||
IF_RELEASE(theme_name);
|
IF_RELEASE(theme_name);
|
||||||
|
|
||||||
icon_cache = efreet_cache_close(icon_cache);
|
icon_cache = efreet_cache_close(icon_cache);
|
||||||
|
|
Loading…
Reference in New Issue