RFR: 8357539: TimeSource.now() is not monotonic [v2]
Daniel Jeliński
djelinski at openjdk.org
Thu May 22 18:56:29 UTC 2025
> We observed a case where the instants returned by `TimeSource.now()` were returned in non-monotonic order. The reason was that sometimes we were using a delay calculated with one `localSource` as an input to a different (updated on another thread) `localSource`. This was confirmed by putting `assert firstNanos + delay == nanos;` under `instant(long, long)`.
>
> The fix ensures that we won't accidentally use the incorrect delay by removing the `instant(long, long)` overload, and calculating the delay in the method where it is used.
>
> No new test; instrumenting this class for testing would likely double its size. Tier2 tests continue to pass.
Daniel Jeliński has updated the pull request incrementally with one additional commit since the last revision:
Restore instant(long,long)
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/25390/files
- new: https://git.openjdk.org/jdk/pull/25390/files/bd5e4619..a16404aa
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=25390&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=25390&range=00-01
Stats: 7 lines in 1 file changed: 5 ins; 0 del; 2 mod
Patch: https://git.openjdk.org/jdk/pull/25390.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/25390/head:pull/25390
PR: https://git.openjdk.org/jdk/pull/25390
More information about the net-dev
mailing list