|
|
|
|
@ -233,7 +233,9 @@ ZT1_ResultCode Node::processBackgroundTasks(uint64_t now,volatile uint64_t *next
|
|
|
|
|
_now = now; |
|
|
|
|
Mutex::Lock bl(_backgroundTasksLock); |
|
|
|
|
|
|
|
|
|
if ((now - _lastPingCheck) >= ZT_PING_CHECK_INVERVAL) { |
|
|
|
|
unsigned long timeUntilNextPingCheck = ZT_PING_CHECK_INVERVAL; |
|
|
|
|
const uint64_t timeSinceLastPingCheck = now - _lastPingCheck; |
|
|
|
|
if (timeSinceLastPingCheck >= ZT_PING_CHECK_INVERVAL) { |
|
|
|
|
try { |
|
|
|
|
_lastPingCheck = now; |
|
|
|
|
|
|
|
|
|
@ -278,6 +280,8 @@ ZT1_ResultCode Node::processBackgroundTasks(uint64_t now,volatile uint64_t *next
|
|
|
|
|
} catch ( ... ) { |
|
|
|
|
return ZT1_RESULT_FATAL_ERROR_INTERNAL; |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
timeUntilNextPingCheck -= (unsigned long)timeSinceLastPingCheck; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ((now - _lastHousekeepingRun) >= ZT_HOUSEKEEPING_PERIOD) { |
|
|
|
|
@ -292,7 +296,7 @@ ZT1_ResultCode Node::processBackgroundTasks(uint64_t now,volatile uint64_t *next
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
*nextBackgroundTaskDeadline = now + (uint64_t)std::max(std::min((unsigned long)ZT_PING_CHECK_INVERVAL,RR->sw->doTimerTasks(now)),(unsigned long)ZT_CORE_TIMER_TASK_GRANULARITY); |
|
|
|
|
*nextBackgroundTaskDeadline = now + (uint64_t)std::max(std::min(timeUntilNextPingCheck,RR->sw->doTimerTasks(now)),(unsigned long)ZT_CORE_TIMER_TASK_GRANULARITY); |
|
|
|
|
} catch ( ... ) { |
|
|
|
|
return ZT1_RESULT_FATAL_ERROR_INTERNAL; |
|
|
|
|
} |
|
|
|
|
|