private static void initialise() {
        initialised = true;

        sleepDurations.init(1000 * 1000);
        yieldDurations.init((int) (-(getTime() - getTime()) * 1.333));

        nextFrame = getTime();


            // On Windows, the sleep functions can be highly inaccurate by
            // over 10ms making in unusable. However, it can be forced to
            // be a bit more accurate by running a separate sleeping daemon
            // thread.
            Thread timerAccuracyThread = new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        while(true)Thread.sleep(Long.MAX_VALUE);
                    } catch (Exception e) {}
                }
            });

            timerAccuracyThread.setName("LWJGL Timer");
            timerAccuracyThread.setDaemon(true);
            timerAccuracyThread.start();
        }
This method will initialise the sync method by setting initial
values for sleepDurations/yieldDurations and nextFrame.

If running on Windows, it will start the sleep timer fix.
jme3-lwjgl3/src/main/java/com/jme3/system/lwjgl/Sync.java