On Wed, 14 Jun 2023 11:02:04 GMT, Daniel Fuchs <[email protected]> wrote:

>> The HttpClient uses `Instant.now()` to create deadlines for timeouts. This 
>> could have undesirable effects since `Instant.now()` is linked to the wall 
>> clock, which is not monotonic. This fix changes the HttpClient to use a 
>> monotonic instant source based on `System.nanoTime()` for the purpose of 
>> setting and comparing deadlines.
>
> Daniel Fuchs has updated the pull request with a new target base due to a 
> merge or a rebase. The incremental webrev excludes the unrelated changes 
> brought in by the merge/rebase. The pull request contains two additional 
> commits since the last revision:
> 
>  - Merge branch 'master' into TimeSource
>  - 8309939

src/java.net.http/share/classes/jdk/internal/net/http/ConnectionPool.java line 
132:

> 130:     }
> 131: 
> 132:     ConnectionPool(long clientId, TimeSource timeSource) {

Hello Daniel, as far as I can see, no one calls this constructor outside of 
this very class and this seems to be always passed a constant 
`TimeSource.source()`. So maybe we don't have to have a `timeSource` field in 
this class and instead just use `TimeSource.now()` at call sites within this 
class (and `ExpiryList`) whenever we want `now()`?

src/java.net.http/share/classes/jdk/internal/net/http/common/TimeSource.java 
line 76:

> 74:                 // The use of Integer.MAX_VALUE is arbitrary.
> 75:                 // Any value not too close to Long.MAX_VALUE
> 76:                 // would do.

The `Integer.MAX_VALUE` gets used in `isInWindow()` method implementation, 
through the use of `TIME_WINDOW` member. Should this comment about 
`Integer.MAX_VALUE` instead be moved as a field comment for `TIME_WINDOW`? That 
way it's closer to where the `Integer.MAX_VALUE` is actually used.

src/java.net.http/share/classes/jdk/internal/net/http/common/TimeSource.java 
line 82:

> 80:         }
> 81: 
> 82:         // @ForceInline

Should these couple of commented out `@ForceInline` be deleted?

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/14450#discussion_r1229428984
PR Review Comment: https://git.openjdk.org/jdk/pull/14450#discussion_r1229432322
PR Review Comment: https://git.openjdk.org/jdk/pull/14450#discussion_r1229430561

Reply via email to