Remark on the StructuredTaskScope API of Java 25

Alan Bateman alan.bateman at oracle.com
Wed Sep 24 17:52:44 UTC 2025



On 24/09/2025 16:37, Remi Forax wrote:
> :
>
> And now two remarks,
>   - is there a way to remove the limitation that the main thread (the one that have created the STS) can not access to SubTask.get(),
>     because there is at least a case where i know that the task is finished before join() is called (see below).

This restriction is there to ensure that the API is used as intended. 
Subtasks are forked individually and then joined as a unit. If the API 
allowed Subtask::get to be used before join then it would be very 
fragile as it would be like a "wait-less" Future::get. It might work 
sometimes, but if a subtask were slow then Subtask::get would throw ISE.

>   - is there a way to get a joiner that returns the list of subtask in the order if their completeness, not in the order of onFork() ?
>
A Joiner can collect in its onComplete method so that will give you 
completion order. That said, I suspect you might be asking something 
different. Are you thinking about APIs such as CompletionService where 
you get a wakeup as subtasks complete rather join as a unit?

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


More information about the loom-dev mailing list