T - the result typeAutoCloseableStructuredTaskScopePREVIEW<T>public static final class StructuredTaskScope.ShutdownOnSuccess<T> extends StructuredTaskScopePREVIEW<T>
ShutdownOnSuccess is a preview API of the Java platform. StructuredTaskScope that captures the result of the first subtask to complete successfullyPREVIEW. Once captured, it shuts downPREVIEW the task scope to interrupt unfinished threads and wakeup the task scope owner. The policy implemented by this class is intended for cases where the result of any subtask will do ("invoke any") and where the results of other unfinished subtasks are no longer needed.  Unless otherwise specified, passing a null argument to a method in this class will cause a NullPointerException to be thrown.
StructuredTaskScope.ShutdownOnFailurePREVIEW, StructuredTaskScope.ShutdownOnSuccessPREVIEW<T>, StructuredTaskScope.SubtaskPREVIEW<T>
| Constructor | Description | 
|---|---|
| ShutdownOnSuccess() | Constructs a new unnamed  ShutdownOnSuccessthat creates virtual threads. | 
| ShutdownOnSuccess | Constructs a new  ShutdownOnSuccesswith the given name and thread factory. | 
| Modifier and Type | Method | Description | 
|---|---|---|
| StructuredTaskScope.ShutdownOnSuccessPREVIEW | join() | Wait for a subtask started in this task scope to complete successfullyPREVIEW or all subtasks to complete. | 
| StructuredTaskScope.ShutdownOnSuccessPREVIEW | joinUntil | Wait for a subtask started in this task scope to complete successfullyPREVIEW or all subtasks to complete, up to the given deadline. | 
| T | result() | Returns the result of the first subtask that completed successfullyPREVIEW. | 
| <X extends Throwable> | result | Returns the result of the first subtask that completed successfullyPREVIEW, otherwise throws an exception produced by the given exception supplying function. | 
close, ensureOwnerAndJoined, fork, handleComplete, isShutdown, shutdown
public ShutdownOnSuccess(String name, ThreadFactory factory)
ShutdownOnSuccess with the given name and thread factory. The task scope is optionally named for the purposes of monitoring and management. The thread factory is used to create threads when subtasks are forkedPREVIEW. The task scope is owned by the current thread. Construction captures the current thread's scoped valuePREVIEW bindings for inheritance by threads started in the task scope. The Tree Structure section in the class description details how parent-child relations are established implicitly for the purpose of inheritance of scoped value bindings.
name - the name of the task scope, can be nullfactory - the thread factorypublic ShutdownOnSuccess()
ShutdownOnSuccess that creates virtual threads.null and a thread factory that creates virtual threads.public StructuredTaskScope.ShutdownOnSuccessPREVIEW<T> join() throws InterruptedException
 This method waits for all subtasks by waiting for all threads startedPREVIEW in this task scope to finish execution. It stops waiting when all threads finish, a subtask completes successfully, or the current thread is interrupted. It also stops waiting if the shutdownPREVIEW method is invoked directly to shut down this task scope. 
This method may only be invoked by the task scope owner.
join in class StructuredTaskScopePREVIEW<T>
IllegalStateException - if this task scope is closedWrongThreadException - if the current thread is not the task scope ownerInterruptedException - if interrupted while waitingpublic StructuredTaskScope.ShutdownOnSuccessPREVIEW<T> joinUntil(Instant deadline) throws InterruptedException, TimeoutException
 This method waits for all subtasks by waiting for all threads startedPREVIEW in this task scope to finish execution. It stops waiting when all threads finish, a subtask completes successfully, the deadline is reached, or the current thread is interrupted. It also stops waiting if the shutdownPREVIEW method is invoked directly to shut down this task scope. 
This method may only be invoked by the task scope owner.
joinUntil in class StructuredTaskScopePREVIEW<T>
deadline - the deadlineIllegalStateException - if this task scope is closedWrongThreadException - if the current thread is not the task scope ownerInterruptedException - if interrupted while waitingTimeoutException - if the deadline is reached while waitingpublic T result() throws ExecutionException
 When no subtask completed successfully, but a subtask failedPREVIEW then ExecutionException is thrown with the subtask's exception as the cause.
ExecutionException - if no subtasks completed successfully but at least one subtask failedIllegalStateException - if no subtasks completed or the task scope owner did not join after forkingWrongThreadException - if the current thread is not the task scope ownerpublic <X extends Throwable> T result(Function<Throwable,? extends X> esf) throws X
When no subtask completed successfully, but a subtask failedPREVIEW, then the exception supplying function is invoked with subtask's exception.
X - type of the exception to be thrownesf - the exception supplying functionX - if no subtasks completed successfully but at least one subtask failedIllegalStateException - if no subtasks completed or the task scope owner did not join after forkingWrongThreadException - if the current thread is not the task scope owner
    © 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
    https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/StructuredTaskScope.ShutdownOnSuccess.html
  
ShutdownOnSuccesswhen preview features are enabled.