STS allows to bypass any checked exceptions

Alan Bateman Alan.Bateman at oracle.com
Sun May 14 05:24:32 UTC 2023


On 13/05/2023 22:33, Remi Forax wrote:
> :
>
>      static <T> T bypassCheckedException(Callable<? extends T> callable) {
>          try(var sts = new StructuredTaskScope<>()) {
>              var task = sts.fork(callable);
>              try {
>                  sts.join();
>              } catch (InterruptedException e) {
>                  Thread.currentThread().interrupt();
>              }
>              return task.get();
>          }
>      }
>
I think the subject line is a bit misleading :-)

I think you are asking about continuing when join is interrupted (or the 
deadline is reached with joinUntil). Right now, the spec for 
ensureOwnerAndJoined is that ISE is thrown if the owner did not invoke 
join after forking. It doesn't make it clear what this means if join 
doesn't complete successfully. It's different for close, it should throw 
if join as been attempted. There's a more general question when you have 
a sequence of phases that I was mulling over recently. Thanks for 
bringing it up.

-Alan


More information about the loom-dev mailing list