]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
Update offset correction errors only when needed
authorMiroslav Lichvar <mlichvar@redhat.com>
Wed, 11 Aug 2010 15:16:16 +0000 (17:16 +0200)
committerMiroslav Lichvar <mlichvar@redhat.com>
Wed, 11 Aug 2010 15:16:16 +0000 (17:16 +0200)
local.c
sys_linux.c
sys_netbsd.c
sys_solaris.c
sys_sunos.c

diff --git a/local.c b/local.c
index c5b6383450b939f453a887424447c4ee62279736..ad0aa34ff24f3183c860e021685a54be0fa46c21 100644 (file)
--- a/local.c
+++ b/local.c
@@ -349,13 +349,8 @@ LCL_CookTime(struct timeval *raw, struct timeval *cooked, double *err)
 void
 LCL_GetOffsetCorrection(struct timeval *raw, double *correction, double *err)
 {
-  double e;
-
   /* Call system specific driver to get correction */
-  (*drv_offset_convert)(raw, correction, &e);
-
-  if (err)
-    *err = e;
+  (*drv_offset_convert)(raw, correction, err);
 }
 
 /* ================================================== */
index 48eeeb89f1983d2977ee17132d498a3a8b6b4d0f..8567df930cb41bd876d55374e7e1e4f1b67b33d6 100644 (file)
@@ -800,7 +800,6 @@ get_offset_correction(struct timeval *raw,
       slow_slewing = 0;
     }
   }
-  update_slow_slew_error(offset);
 
   if (!nano_slewing) {
     noffset = 0;
@@ -812,7 +811,6 @@ get_offset_correction(struct timeval *raw,
       nano_slewing = 0;
     }
   }
-  update_nano_slew_error(noffset, 0);
 
   if (fast_slewing) {
     UTI_DiffTimevalsToDouble(&fast_slew_duration, raw, &slew_start_tv);
@@ -824,7 +822,12 @@ get_offset_correction(struct timeval *raw,
   }  
 
   *corr = - (offset_register + fast_slew_remaining) + offset / 1.0e6 + noffset / 1.0e9;
-  *err = get_slow_slew_error(raw) + get_fast_slew_error(raw) + get_nano_slew_error();;
+
+  if (err) {
+    update_slow_slew_error(offset);
+    update_nano_slew_error(noffset, 0);
+    *err = get_slow_slew_error(raw) + get_fast_slew_error(raw) + get_nano_slew_error();;
+  }
 
   return;
 }
index 04b3f926d1e57f835d88b7a1d25f5fccb49b8d0a..8c0cacc5b67de9bdfcb1b8501c89353d24eee184 100644 (file)
@@ -271,7 +271,8 @@ get_offset_correction(struct timeval *raw,
   stop_adjust();
   *corr = -offset_register;
   start_adjust();
-  *err = 0.0;
+  if (err)
+    *err = 0.0;
 }
 
 /* ================================================== */
index 4024048d07666f21bad4a9b5e152156510211c85..f75485ae1ade4866960690d9c9d0f48d4dbb160d 100644 (file)
@@ -300,7 +300,8 @@ get_offset_correction(struct timeval *raw,
   stop_adjust();
   *corr = -offset_register;
   start_adjust();
-  *err = 0.0;
+  if (err)
+    *err = 0.0;
   return;
 }
 
index 4878715726820b99527ef48663d3280713a8bb58..6540fa6452aa1afc4fe16b957e1c333ae421e593 100644 (file)
@@ -287,7 +287,8 @@ get_offset_correction(struct timeval *raw,
   stop_adjust();
   *corr = -offset_register;
   start_adjust();
-  *err = 0.0;
+  if (err)
+    *err = 0.0;
   return;
 }