summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2020-04-09 20:45:57 +0100
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2020-04-09 20:45:57 +0100
commit6df39f0382e8a398b35c7e18ca547f1bb461bd10 (patch)
treebc27c2cc4b6b6e795383776bebadac174ea96794
parentd74f17239cef6d407503ad938c0391e47a49a060 (diff)
downloadefl-6df39f0382e8a398b35c7e18ca547f1bb461bd10.tar.gz
efreet - try less chaotic efreetd restart and delay 0.5-1.0 rand sec
try work on T8490
-rw-r--r--src/lib/efreet/efreet_cache.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/lib/efreet/efreet_cache.c b/src/lib/efreet/efreet_cache.c
index 329bcc7ebc..a34ffd405d 100644
--- a/src/lib/efreet/efreet_cache.c
+++ b/src/lib/efreet/efreet_cache.c
@@ -120,6 +120,8 @@ _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;
s = getenv("EFREETD_CONNECT_TRIES");
if (s)
{
@@ -180,7 +182,6 @@ _cb_server_reconnect(void *data EINA_UNUSED)
static Eina_Bool
_cb_server_del(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
{
- static double last_del = 0.0;
double t;
IPC_HEAD(Del);
ipc = NULL;
@@ -194,15 +195,10 @@ _cb_server_del(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
free(address);
return EINA_FALSE;
}
- t = ecore_time_get();
- if ((t - last_del) < 0.5)
- {
- if (reconnect_timer) ecore_timer_del(reconnect_timer);
- reconnect_timer = ecore_timer_add(0.5, _cb_server_reconnect, NULL);
- }
- else
- _cb_server_reconnect(NULL);
- last_del = t;
+ // random 0.5 -> 1.0 sec from now
+ t = (((double)((rand() + (int)getpid()) & 0xff) / 255.0) * 0.5) + 0.5;
+ if (reconnect_timer) ecore_timer_del(reconnect_timer);
+ reconnect_timer = ecore_timer_add(t, _cb_server_reconnect, NULL);
return ECORE_CALLBACK_DONE;
}