> 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: Move localSource comment ------------- Changes: - all: https://git.openjdk.org/jdk/pull/25390/files - new: https://git.openjdk.org/jdk/pull/25390/files/a16404aa..5844e89f Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=25390&range=02 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=25390&range=01-02 Stats: 2 lines in 1 file changed: 1 ins; 1 del; 0 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