RFR: 8367857: Implement JEP 525: Structured Concurrency (Sixth Preview) [v6]
Alan Bateman
alanb at openjdk.org
Fri Oct 24 14:04:15 UTC 2025
> Updates for JEP 525.
>
> - `Joiner:onTimeout` is added with `join` method changed to invoke this joiner method if
> a timeout is configured and the timeout expires before or while waiting. The `onTimeout`
> throws `TimeoutException` or may do nothing. This allows for `Joiner` implementation that
> are capable of returning a result from the subtasks that complete before the timeout expires.
> - The `configFunction` parameter to the 3-arg `open` is changed from
> `Function<Configuration, Configuration>` to `UnaryOperator<Configuration>`.
> - `Subtask::get` and `Subtask::exception` changed to consistently throw if called from
> any thread before the scope owner has joined.
> - `StructuredTaskScope::join` is now specified so that it may be called again if interrupted.
> - The parameter on `Joiner::onFork` and `Joiner::onComplete` is changed from
> `Subtask<? extends T` to `Subtask<T>`.
> - `Joiner.allSuccessOrThrow` is changed to return a list of results instead of a stream of
> subtasks. `Joiner.allUntil` is changed to return a list of subtasks.
> - `Joiner.anySuccessfulResultOrThrow` is renamed to `anySuccessfulOrThrow`.
> - `Joiner.allUntil(Predicate)` is changed to allow `join` return the stream of all forked
> subtasks when the timeout expires.
> - `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.
Alan Bateman has updated the pull request incrementally with one additional commit since the last revision:
Make implSpec clearer
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/27392/files
- new: https://git.openjdk.org/jdk/pull/27392/files/5be33593..824cc5d2
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=27392&range=05
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=27392&range=04-05
Stats: 5 lines in 1 file changed: 0 ins; 0 del; 5 mod
Patch: https://git.openjdk.org/jdk/pull/27392.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/27392/head:pull/27392
PR: https://git.openjdk.org/jdk/pull/27392
More information about the core-libs-dev
mailing list