From e4c2644db25fd9fe742ac4657d548b1463fd1e1a Mon Sep 17 00:00:00 2001 From: YuQing <384681@qq.com> Date: Tue, 19 Nov 2019 08:49:08 +0800 Subject: [PATCH] change sleep seconds when ping tracker leader fail --- tracker/tracker_relationship.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tracker/tracker_relationship.c b/tracker/tracker_relationship.c index 64991d1..c638c70 100644 --- a/tracker/tracker_relationship.c +++ b/tracker/tracker_relationship.c @@ -562,9 +562,9 @@ static void *relationship_thread_entrance(void* arg) int sleep_seconds; fail_count = 0; + sleep_seconds = 1; while (g_continue_flag) { - sleep_seconds = 1; if (g_tracker_servers.servers != NULL) { if (g_tracker_servers.leader_index < 0) @@ -574,20 +574,26 @@ static void *relationship_thread_entrance(void* arg) sleep_seconds = 1 + (int)((double)rand() * (double)MAX_SLEEP_SECONDS / RAND_MAX); } + else + { + sleep_seconds = 1; + } } else { if (relationship_ping_leader() == 0) { fail_count = 0; + sleep_seconds = 1; } else { - fail_count++; - if (fail_count >= 3) + sleep_seconds *= 2; + if (++fail_count >= 3) { g_tracker_servers.leader_index = -1; fail_count = 0; + sleep_seconds = 1; } } }