diff options
| -rw-r--r-- | sys/src/9/port/tod.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/src/9/port/tod.c b/sys/src/9/port/tod.c index 424e0f290..b88f721af 100644 --- a/sys/src/9/port/tod.c +++ b/sys/src/9/port/tod.c @@ -198,11 +198,13 @@ todfix(void) uvlong x; ticks = fastticks(nil); + diff = ticks - tod.last; + if(diff <= tod.hz) + return; + ilock(&tod); diff = ticks - tod.last; if(diff > tod.hz){ - ilock(&tod); - /* convert to epoch */ mul64fract(&x, diff, tod.multiplier); if(x > 30000000000ULL) iprint("todfix %llud\n", x); @@ -211,9 +213,8 @@ if(x > 30000000000ULL) iprint("todfix %llud\n", x); /* protect against overflows */ tod.last = ticks; tod.off = x; - - iunlock(&tod); } + iunlock(&tod); } long |
