Timeouts in structured concurrency

Alan Bateman alan.bateman at oracle.com
Fri Dec 19 10:52:48 UTC 2025



On 19/12/2025 08:33, David Alayachew wrote:
> And maybe it'll help if I clarify what I was saying to @Holo The Sage 
> Wolf <mailto:holo3146 at gmail.com>.
>
> Holo is saying that they like the default joiner, but adding a timeout 
> to it takes more code than necessary. They proposed multiple different 
> overloads, but I suggested the following overload instead.
>
> StructuredTaskScope.open(UnaryOperator<StructuredTaskScope.Configuration> 
> configOperator)
>

There are two built-in joiners that implement the policy to cancel the 
scope and cause join to throw if any subtask fails. One is suited to 
subtasks that produce results of the same type. It can collect the 
results and have join yield the list of results. The other is suited to 
subtasks that produce results of very different types and where it is 
more convenient to retain the Subtask returned from fork. The feedback 
to date on which would be the better default is inconclusive. The choice 
influences the return from the 1-arg open method is being discussed 
here, and is why it is not included in the current API.

-Alan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/loom-dev/attachments/20251219/f1214465/attachment.htm>


More information about the loom-dev mailing list