efreet - try less chaotic efreetd restart and delay 0.5-1.0 rand sec
try work on T8490
This commit is contained in:
parent
d74f17239c
commit
6df39f0382
|
@ -120,6 +120,8 @@ _ipc_launch(void)
|
||||||
int tries = 1000; // 1000 * 10ms == 10sec
|
int tries = 1000; // 1000 * 10ms == 10sec
|
||||||
const char *s;
|
const char *s;
|
||||||
|
|
||||||
|
ipc = ecore_ipc_server_connect(ECORE_IPC_LOCAL_USER, "efreetd", 0, NULL);
|
||||||
|
if (ipc) return;
|
||||||
s = getenv("EFREETD_CONNECT_TRIES");
|
s = getenv("EFREETD_CONNECT_TRIES");
|
||||||
if (s)
|
if (s)
|
||||||
{
|
{
|
||||||
|
@ -180,7 +182,6 @@ _cb_server_reconnect(void *data EINA_UNUSED)
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_cb_server_del(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
|
_cb_server_del(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
|
||||||
{
|
{
|
||||||
static double last_del = 0.0;
|
|
||||||
double t;
|
double t;
|
||||||
IPC_HEAD(Del);
|
IPC_HEAD(Del);
|
||||||
ipc = NULL;
|
ipc = NULL;
|
||||||
|
@ -194,15 +195,10 @@ _cb_server_del(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
|
||||||
free(address);
|
free(address);
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
t = ecore_time_get();
|
// random 0.5 -> 1.0 sec from now
|
||||||
if ((t - last_del) < 0.5)
|
t = (((double)((rand() + (int)getpid()) & 0xff) / 255.0) * 0.5) + 0.5;
|
||||||
{
|
if (reconnect_timer) ecore_timer_del(reconnect_timer);
|
||||||
if (reconnect_timer) ecore_timer_del(reconnect_timer);
|
reconnect_timer = ecore_timer_add(t, _cb_server_reconnect, NULL);
|
||||||
reconnect_timer = ecore_timer_add(0.5, _cb_server_reconnect, NULL);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
_cb_server_reconnect(NULL);
|
|
||||||
last_del = t;
|
|
||||||
return ECORE_CALLBACK_DONE;
|
return ECORE_CALLBACK_DONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue