aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/com/jogamp/common/os/Clock.java
Commit message (Collapse)AuthorAgeFilesLines
* Clock/Platform: Add currentMillis() analogue to currentNanos(), returning ↵Sven Gothel2023-10-061-2/+17
| | | | | | | | current monotonic milliseconds **since start of this application** Also added TSPrinter, a simple millisecond timestamp prepending `print*()` wrapper for a {@link PrintStream}. Test coverage via TestClock01.
* Clock: Consider return code on failed native clock_gettime(..) call; Add ↵Sven Gothel2023-03-071-9/+18
| | | | | | | | | | | | | Win32 clock_gettime() implementation. Consider return code on failed native clock_gettime(..) call - Return Instant.EPOCH for all Instant variations (essentially 0) - Return 0 for all 'long' variations (ms, ns) Add Win32 clock_gettime() implementation. - Source: https://github.com/Alexpux/mingw-w64/blob/master/mingw-w64-libraries/winpthreads/src/clock.c - Public Domain within mingw-w64, included here to simplify linkage. - Tested on Win10 64bit w/ TestTextRendererNEWT00, all values are OK
* Clock: Rename currentTimeNanos() -> currentNanos() as it represents the ↵Sven Gothel2023-03-061-16/+24
| | | | duration since module startup and not time.
* Fix Clock for performance counter: Add currentTimeNanos() since module ↵Sven Gothel2023-03-061-23/+75
| | | | | | | | | | | startup, retrievable via getMonotonicStartupTime(). (performance) Settings two long fields in getMonotonicTime() and creating Instant and using Duration for high-frequency counter is too expensive. currentTimeNanos() subtracts the startup time from the current monotonic time and returns the resulting duration in nanoseconds, which lasts for 292 years since module startup. This satisfies performance counter requirements.
* Add Clock, implementing proper monotonic and wallclock time using Instant ↵Sven Gothel2023-03-061-0/+96
(sec + nsec), currentTimeMillis() is also monotonic now, reused by Platform. Dropped Platform.currentTimeMicros() Clock and its implementation was copied from jaulibs, a spin-off from Direct-BT. The implementation uses `clock_gettime(CLOCK_MONOTONIC, &t)` and is considered safe and high-performant as it avoids a kernel call via VDSO (GNU/Linux).