code: public static void waitOneFinished(List<? extends Task<?,?>> tasks) {
  		if (tasks.isEmpty()) return;
  		if (tasks.size() == 1)
  			try { tasks.get(0).getOutput().block(0); }
  			catch (Throwable e) { /* ignore */ }
  		SynchronizationPoint<Exception> sp = new SynchronizationPoint<>();
  		for (Task<?,?> t : tasks) {
  			if (t.isDone()) return;
  			t.getOutput().synchWithNoError(sp);
  		}
  		sp.block(0);
  	}
docs: Wait for one of the given task to be done.