1 2 # Structured Concurrency updates 3 4 The following is a summary of the changes to `StructuredTaskScope` in the `fibers` branch 5 of the loom repo: 6 7 - The `configFunction` parameter to the 3-arg `open` is changed from 8 `Function<Configuration, Configuration>` to `UnaryOperator<Configuration>`. 9 10 - `Subtask::get` and `Subtask::exception` changed to consistently throw if called from 11 any thread before the scope owner has joined. 12 13 - The `join` method is changed to invoke `Joiner::onTimeout` if a timeout is configured 14 and the timeout expires before or while waiting. The `onTimeout` throws `TimeoutException` 15 or may do nothing. This allows for `Joiner` implementation that are capable of returning 16 a result from the subtasks that complete before the timeout expires. 17 18 - `Joiner.allUntil(Predicate)` is changed to allow `join` return the stream of all forked 19 subtasks when the timeout expires. 20 21 - The `join` is now specified so that it may be called again if interrupted. 22 23 - `Joiner` is no longer a `@FunctionalInterface`