package net.openhft.chronicle.core.time;

public class BackgroundTimeProviderMain {
    public static void main(String[] args) throws InterruptedException {
        int under = 0, over = 0;
        for (int i = 0; i < 6_000; i++) {
            BackgroundTimeProvider tp = BackgroundTimeProvider.INSTANCE;
            long nowMS;
            long nowNS;
            if (i % 2 == 0) {
                nowMS = System.currentTimeMillis();
                nowNS = tp.currentTimeNanos();
            } else {
                nowNS = tp.currentTimeNanos();
                nowMS = System.currentTimeMillis();
            }
            long diff = nowNS - nowMS * 1000000;
            if (diff < 0) {
                under += 1 + (diff / -1e4);
            }
            if (diff > 1e6) {
                over += 1 + (diff - 1e6) / 1e4;
            }
            Thread.sleep(1);
        }
        System.out.println("under: " + under + ", over: " + over);
    }

}
@@ -658,16 +658,113 @@
 000000;%0A
+            if (diff %3C -1e5 %7C%7C diff %3E 11e5)%0A                System.out.println(%22diff: %22 + diff);%0A
         

Add warning if a MethodReader tries to read for an overloaded interface.