On Tue, 23 Sep 2025 08:42:02 GMT, Viktor Klang <[email protected]> wrote:

>> Updates for JEP 525.
>> 
>> - The join method is changed to invoke `Joiner::onTimeout` if a timeout is 
>> configured and the timeout expires before or while waiting.
>> - `Joiner.allUntil(Predicate`) is changed to allow join return the stream of 
>> all forked subtasks when the timeout expires.
>> - The `join` method is now specified to allow it be called again if 
>> interrupted.
>> - The configFunction parameter to the 3-arg open is changed from 
>> `Function<Configuration, Configuration>` to `UnaryOperator<Configuration>`.
>> - Joiner is no longer a `@FunctionalInterface`.
>> 
>> Most of the changes are to API docs and tests. Some links are changed to use 
>> double hash mark.
>
> src/java.base/share/classes/java/util/concurrent/StructuredTaskScope.java 
> line 208:
> 
>> 206:  * with the <a id="DefaultConfiguration"> <em>default 
>> configuration</em></a>. The default
>> 207:  * configuration has a {@code ThreadFactory} that creates unnamed 
>> {@linkplain
>> 208:  * Thread##virtual-threads virtual threads}, is unnamed for monitoring 
>> and management
> 
> Is the second "unnamed" referring to the ThreadGroup itself? If so, it might 
> be clearer to say "configuration has an unnamed ThreadFactory that creates 
> unnamed virtual threads"

It's the scope name, I'll try to make this clearer.

> src/java.base/share/classes/java/util/concurrent/StructuredTaskScope.java 
> line 242:
> 
>> 240:  * interrupts the threads executing the two subtasks) and the {@code 
>> Joiner}'s {@link
>> 241:  * Joiner#onTimeout() onTimeout} method is invoked to throw {@link 
>> TimeoutException
>> 242:  * TimeoutException}.
> 
> Might be worth mentioning that said TimeoutException will then propagate upon 
> the invocation of STS::join()?

It's probably too early in the docs to reference this method so I think clearer 
to clear this to the Joiner description.

> src/java.base/share/classes/java/util/concurrent/StructuredTaskScope.java 
> line 1069:
> 
>> 1067:      * invoked to optionally throw {@link TimeoutException 
>> TimeoutException}. If the
>> 1068:      * {@code onTimeout} method throws another exception or error then 
>> it is propagated
>> 1069:      * by this method. Once finished waiting, and {@code onTimeout} 
>> does not throw, the
> 
> Might be worth clarifying "Once finished waiting," to clarify what it is 
> waiting for.

Reading this again then I think the issue is that there is too much in this 
paragraph, I'll split it into two.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27392#discussion_r2372751904
PR Review Comment: https://git.openjdk.org/jdk/pull/27392#discussion_r2372754564
PR Review Comment: https://git.openjdk.org/jdk/pull/27392#discussion_r2372755997

Reply via email to