import java.util.List; import java.util.concurrent.*; import java.util.concurrent.StructuredTaskScope.Joiner; import java.util.concurrent.StructuredTaskScope.Subtask; /** A custom Joiner as written for JDK 26: two type parameters and onTimeout(). */ public class OldJoiner implements Joiner> { private final java.util.Queue results = new ConcurrentLinkedQueue<>(); public boolean onComplete(Subtask s) { if (s.state() == Subtask.State.SUCCESS) results.add(s.get()); return false; } public void onTimeout() { } public List result() { return List.copyOf(results); } }