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`