efreetd - ensure on bsd where connects succed despite daemon being gone

just get it to work... getting unamused with this.
This commit is contained in:
Carsten Haitzler 2020-04-10 01:15:30 +02:00
parent 6df39f0382
commit 9fd9a3b120
1 changed files with 12 additions and 2 deletions

View File

@ -101,6 +101,7 @@ static void *hash_array_string_add(void *hash, const char *key, void *data);
static Eina_Bool disable_cache;
static Eina_Bool run_in_tree;
static int relaunch_try = 0;
EAPI int EFREET_EVENT_ICON_CACHE_UPDATE = 0;
EAPI int EFREET_EVENT_DESKTOP_CACHE_UPDATE = 0;
@ -120,8 +121,16 @@ _ipc_launch(void)
int tries = 1000; // 1000 * 10ms == 10sec
const char *s;
ipc = ecore_ipc_server_connect(ECORE_IPC_LOCAL_USER, "efreetd", 0, NULL);
if (ipc) return;
if (relaunch_try == 0)
{
ipc = ecore_ipc_server_connect(ECORE_IPC_LOCAL_USER, "efreetd", 0, NULL);
if (ipc)
{
relaunch_try++;
return;
}
}
relaunch_try--;
s = getenv("EFREETD_CONNECT_TRIES");
if (s)
{
@ -153,6 +162,7 @@ static Eina_Bool
_cb_server_add(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
{
IPC_HEAD(Add);
relaunch_try--;
return ECORE_CALLBACK_DONE;
}