change sleep seconds when ping tracker leader fail

v6.03_dev
YuQing 2019-11-19 08:49:08 +08:00
parent 358fff4ac8
commit e4c2644db2
1 changed files with 9 additions and 3 deletions

View File

@ -562,9 +562,9 @@ static void *relationship_thread_entrance(void* arg)
int sleep_seconds; int sleep_seconds;
fail_count = 0; fail_count = 0;
sleep_seconds = 1;
while (g_continue_flag) while (g_continue_flag)
{ {
sleep_seconds = 1;
if (g_tracker_servers.servers != NULL) if (g_tracker_servers.servers != NULL)
{ {
if (g_tracker_servers.leader_index < 0) if (g_tracker_servers.leader_index < 0)
@ -574,20 +574,26 @@ static void *relationship_thread_entrance(void* arg)
sleep_seconds = 1 + (int)((double)rand() sleep_seconds = 1 + (int)((double)rand()
* (double)MAX_SLEEP_SECONDS / RAND_MAX); * (double)MAX_SLEEP_SECONDS / RAND_MAX);
} }
else
{
sleep_seconds = 1;
}
} }
else else
{ {
if (relationship_ping_leader() == 0) if (relationship_ping_leader() == 0)
{ {
fail_count = 0; fail_count = 0;
sleep_seconds = 1;
} }
else else
{ {
fail_count++; sleep_seconds *= 2;
if (fail_count >= 3) if (++fail_count >= 3)
{ {
g_tracker_servers.leader_index = -1; g_tracker_servers.leader_index = -1;
fail_count = 0; fail_count = 0;
sleep_seconds = 1;
} }
} }
} }