static ItIt> returnCodesOfMultipleServers_parallel_iterator(int timeout, S... servers) { ret returnCodesOfMultipleServers_iterator(timeout, asList(servers)); } static ItIt> returnCodesOfMultipleServers_parallel_iterator(final int timeout, final Collection servers) { final Var counter = new(0); final L results = synchroList(); for (fS server : servers) thread "Server Check" { results.add(returnCodeHttpHEADWithTimeout(timeout, server)); syncIncIntVar(counter); } ret iteratorFromFunction(new VF1>() { int n = 0; public Pair get() { if (n >= l(servers)) null; waitForVarToChange(counter, n); ret results.get(n++); } }); }