RFR: 8360884: Better scoped values [v4]

Alan Bateman alanb at openjdk.org
Tue Jul 1 15:44:40 UTC 2025


On Tue, 1 Jul 2025 11:15:54 GMT, Andrew Haley <aph at openjdk.org> wrote:

>> Scoped values cannot be used early in the JDK boot process because of some dependencies on System.getProperty(). This dependency should be removed in a way that allows scoped values to be created (but not necessarily bound) at any stage during boot.
>> 
>> Also, Scoped Value's constructor has a synchronized block, which limits the use of scoped values at runtime. Constructing a scoped value should be a thread-local operation.
>
> Andrew Haley has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - 8360884: Better scoped values
>  - 8360884: Better scoped values

src/java.base/share/classes/java/lang/ScopedValue.java line 534:

> 532: 
> 533:     private ScopedValue() {
> 534:         this.hash = hashGenerator != null ? hashGenerator.getAsInt() : generateKey();

The updated version looks much better. It might just a bit clearer to read hashGenerator once here (it doesn't matter of course but stable fields tend to attract a lot of questions).

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26019#discussion_r2177930532


More information about the core-libs-dev mailing list