On Wed, 2 Apr 2025 13:44:47 GMT, Alan Bateman <[email protected]> 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