Skip to content

io7m-com/timehack6435126

Repository files navigation

timehack6435126

Maven Central Maven Central (snapshot) Codecov Java Version

com.io7m.timehack6435126

JVM Platform Status
OpenJDK (Temurin) Current Linux Build (OpenJDK (Temurin) Current, Linux)
OpenJDK (Temurin) LTS Linux Build (OpenJDK (Temurin) LTS, Linux)
OpenJDK (Temurin) Current Windows Build (OpenJDK (Temurin) Current, Windows)
OpenJDK (Temurin) LTS Windows Build (OpenJDK (Temurin) LTS, Windows)

timehack6435126

A high-resolutiom timer JVM bug workaround.

Features

Motivation

The com.io7m.timehack6435126 package implements the workaround for the comedy of errors described by JDK-6435126.

  1. Oracle introduce a JVM option ForceTimeHighResolution intended to force Windows based operating systems into using a high resolution timer instead of the usual low precision one.
  2. Due to a mistake in the implementation, the ForceTimeHighResolution option actually ends up forcing the OS not to use the high resolution timer.
  3. Years pass, and someone files a bug on the broken behaviour.
  4. An anonymous developer at the company states that the behaviour has been broken for years, nobody has complained, and reasons that this means that users that are specifically asking for high resolution timers are satisfied with instead receiving low resolution timers.
  5. Someone suggests a workaround that can be used at run-time to enable the high resolution timer.
  6. Years pass.
  7. An anonymous developer at the company states that the behaviour has been broken for so long, that there's no reason to fix it now.
  8. The bug is rejected as "WONTFIX".

Usage

Call TimeHack6435126.enableHighResolutionTimer() in your program's main function prior to doing anything else.

All timer-related functions in the JVM will be significantly more precise from that point onwards.