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 - The `join` method is changed to invoke `Joiner::onTimeout` if a timeout is configured
11 and the timeout expires before or while waiting. The `onTimeout` throws `TimeoutException`
12 or may do nothing. This allows for `Joiner` implementation that are capable of returning
13 a result from the subtasks that complete before the timeout expires.
14 
15 - `Joiner.allUntil(Predicate)` is changed to allow `join` return the stream of all forked
16 subtasks when the timeout expires.
17 
18 - The `join` is now specified so that it may be called again if interrupted.
19 
20 - `Joiner` is no longer a `@FunctionalInterface`