From 1bbeeb1c870016ba209fde74f380d2e52fc6089b Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Mon, 20 Apr 2009 15:26:11 +0000 Subject: [PATCH] Restore a retry into the NTP synchronization thread. Eliminated an unnecessary local variable. --- src/libCom/osi/osiNTPTime.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/libCom/osi/osiNTPTime.c b/src/libCom/osi/osiNTPTime.c index 6a708df1e..78c63d955 100644 --- a/src/libCom/osi/osiNTPTime.c +++ b/src/libCom/osi/osiNTPTime.c @@ -138,8 +138,6 @@ void NTPTime_Shutdown(void *dummy) static void NTPTimeSync(void *dummy) { - int prevStatusBad = 0; - taskwdInsert(0, NULL, NULL); for (epicsEventWaitWithTimeout(NTPTimePvt.loopEvent, NTPTimeSyncInterval); @@ -155,25 +153,19 @@ static void NTPTimeSync(void *dummy) tickNow = osdTickGet(); if (status) { - NTPTimePvt.syncsFailed++; - - /* Keep trying for 1 minute before reporting failure */ - if (NTPTimePvt.syncsFailed < 60 / NTPTimeSyncInterval) - continue; - - if (!prevStatusBad) + /* Retry before failing */ + if (++NTPTimePvt.syncsFailed >= 2 && + NTPTimePvt.synchronized) { errlogPrintf("NTPTimeSync: NTP requests failing - %s\n", strerror(errno)); - - prevStatusBad = 1; - NTPTimePvt.synchronized = 0; + NTPTimePvt.synchronized = 0; + } continue; } NTPTimePvt.syncsFailed = 0; - if (prevStatusBad) { + if (!NTPTimePvt.synchronized) { errlogPrintf("NTPTimeSync: Sync recovered.\n"); - prevStatusBad = 0; } epicsTimeFromTimespec(&timeNow, ×pecNow);