From 1c51feb3c5977e39b9ad60fe33a9508d0058a55d Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Tue, 8 Aug 2017 13:27:30 +0200 Subject: [PATCH] sched: add new timeout class for peer transmissions This allows transmissions in symmetric mode to be scheduled independently from client transmissions. This reduces maximum delay in scheduling when chronyd is configured with a larger number of servers. --- ntp_core.c | 3 ++- sched.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ntp_core.c b/ntp_core.c index 600d6ab..2717297 100644 --- a/ntp_core.c +++ b/ntp_core.c @@ -427,7 +427,8 @@ restart_timeout(NCR_Instance inst, double delay) /* Start new timer for transmission */ inst->tx_timeout_id = SCH_AddTimeoutInClass(delay, get_separation(inst->local_poll), SAMPLING_RANDOMNESS, - SCH_NtpSamplingClass, + inst->mode == MODE_CLIENT ? + SCH_NtpClientClass : SCH_NtpPeerClass, transmit_timeout, (void *)inst); } diff --git a/sched.h b/sched.h index 837c914..bfb6169 100644 --- a/sched.h +++ b/sched.h @@ -34,7 +34,8 @@ typedef unsigned int SCH_TimeoutID; typedef enum { SCH_ReservedTimeoutValue = 0, - SCH_NtpSamplingClass, + SCH_NtpClientClass, + SCH_NtpPeerClass, SCH_NtpBroadcastClass, SCH_NumberOfClasses /* needs to be last */ } SCH_TimeoutClass;