On Wed, 2 Apr 2025 13:44:47 GMT, Alan Bateman <al...@openjdk.org> wrote:

>> Per Minborg has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Add info that Map#values and Map#entrySet are stable
>
> src/java.base/share/classes/java/lang/StableValue.java line 455:
> 
>> 453:      *         provided to the {@link #orElseSet(Supplier)} method.
>> 454:      */
>> 455:     boolean trySet(T content);
> 
> I assume the intent is that trySet can only return at most true once but the 
> current wording suggests that two threads racing to set the same content 
> would return true, or sequential calls to trySet to set the same content 
> would return true. Does this need to be clarified?

I second this

> src/java.base/share/classes/java/lang/StableValue.java line 494:
> 
>> 492:      * <p>
>> 493:      * The provided {@code supplier} will only be invoked once even if 
>> invoked from
>> 494:      * several threads unless the {@code supplier} throws an exception.
> 
> Is this the supplier instance or any supplier? Just wondering about the case 
> where two threads are invoke it with different instances (for whatever 
> reason), I can't tell from the javadoc.

Seconded

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23972#discussion_r2024957920
PR Review Comment: https://git.openjdk.org/jdk/pull/23972#discussion_r2024961992

Reply via email to