diff options
author | Thorsten Lockert <tholo@cvs.openbsd.org> | 1997-01-25 23:35:59 +0000 |
---|---|---|
committer | Thorsten Lockert <tholo@cvs.openbsd.org> | 1997-01-25 23:35:59 +0000 |
commit | c34517b5762e139dcbb1bbb97dc79e82c733338e (patch) | |
tree | 80611d7ca1d1fe2dfbf6ff38867d44af8e294905 /sys/kern/kern_clock.c | |
parent | 4bb9555af88941610c9d462f12830588c2b59523 (diff) |
Don't do disruptive time corrections if tick size is not integral; from
Dennis Ferguson (NetBSD PR #2788)
Diffstat (limited to 'sys/kern/kern_clock.c')
-rw-r--r-- | sys/kern/kern_clock.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/kern/kern_clock.c b/sys/kern/kern_clock.c index d2a8ae4462f..45ea1f52e6e 100644 --- a/sys/kern/kern_clock.c +++ b/sys/kern/kern_clock.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_clock.c,v 1.14 1997/01/25 23:31:47 tholo Exp $ */ +/* $OpenBSD: kern_clock.c,v 1.15 1997/01/25 23:35:58 tholo Exp $ */ /* $NetBSD: kern_clock.c,v 1.34 1996/06/09 04:51:03 briggs Exp $ */ /*- @@ -284,7 +284,7 @@ static int psdiv, pscnt; /* prof => stat divider */ int psratio; /* ratio: prof / stat */ int tickfix, tickfixinterval; /* used if tick not really integral */ #ifndef NTP -static int tickfixcnt; /* number of ticks since last fix */ +static int tickfixcnt; /* accumulated fractional error */ #else int fixtick; /* used by NTP for same */ int shifthz; @@ -415,10 +415,10 @@ hardclock(frame) #ifndef NTP if (tickfix) { - tickfixcnt++; + tickfixcnt += tickfix; if (tickfixcnt >= tickfixinterval) { - delta += tickfix; - tickfixcnt = 0; + delta++; + tickfixcnt -= tickfixinterval; } } #else |