code: public static <TError extends Exception> void waitUnblockedWithError(Collection<AsyncWork<?,TError>> tasks) throws TError, CancelException {
  		for (AsyncWork<?,TError> t : tasks)
  			t.blockResult(0);
  	}
docs: Wait for the given tasks to finish, if one has an error this error is immediately thrown without waiting for other tasks.