src/main/java/com/machinezoo/pushmode/PageExecutor.java
@Override
	public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) {
		if (tasks.stream().anyMatch(Objects::isNull))
			throw new NullPointerException();
		return new ArrayList<>(Exceptions.sneak().get(() -> submit(() -> {
			return tasks.stream()
				.map(PageExecutor::eval)
				.collect(toList());
		}).get()));
	}
/**
	 * Blocks until all tasks complete running on this {@link PageExecutor}.
	 * All supplied tasks are executed as one big event in the event loop. They are not scheduled separately.
	 * 
	 * @param tasks
	 *            Tasks to execute on this {@link PageExecutor}.
	 * @return List of completed futures holding result or exception for every supplied task.
	 * @x.threads This method is safe to call from any thread except the thread used by this {@link PageExecutor} where it would result in a deadlock.
	 *            This method blocks, which means it shouldn't be called from within event on any {@link PageExecutor}.
	 *            The supplied tasks will run in the event loop, which means they don't need to synchronize access with other events in the same event loop.
	 */
Blocks until all tasks complete running on this  PageExecutor.
All supplied tasks are executed as one big event in the event loop. They are not scheduled separately.

@param tasks
Tasks to execute on this  PageExecutor.
@return List of completed futures holding result or exception for every supplied task.
@x.threads This method is safe to call from any thread except the thread used by this  PageExecutor where it would result in a deadlock.
This method blocks, which means it shouldn't be called from within event on any  PageExecutor.
The supplied tasks will run in the event loop, which means they don't need to synchronize access with other events in the same event loop.
Blocks until all tasks complete running on this PageExecutor . All supplied tasks are executed as one big event in the event loop . They are not scheduled separately . @param tasks Tasks to execute on this PageExecutor . @return List of completed futures holding result or exception for every supplied task . @x . threads This method is safe to call from any thread except the thread used by this PageExecutor where it would result in a deadlock . This method blocks which means it shouldn ' t be called from within event on any PageExecutor . The supplied tasks will run in the event loop which means they don ' t need to synchronize access with other events in the same event loop .
@Override
	public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) {
		if (tasks.stream().anyMatch(Objects::isNull))
			throw new NullPointerException();
		return new ArrayList<>(Exceptions.sneak().get(() -> submit(() -> {
			return tasks.stream()
				.map(PageExecutor::eval)
				.collect(toList());
		}).get()));
	}
@ Override public < T > List < Future < T > > invokeAll ( Collection < ? extends Callable < T > > tasks ) { if ( tasks . stream ( ) . anyMatch ( Objects :: isNull ) ) throw new NullPointerException ( ) ; return new ArrayList < > ( Exceptions . sneak ( ) . get ( ( ) -> submit ( ( ) -> { return tasks . stream ( ) . map ( PageExecutor :: eval ) . collect ( toList ( ) ) ; } ) . get ( ) ) ) ; }
Blocks until all tasks complete running on this {@link PageExecutor}.
Blocks until all tasks complete running on this { @link PageExecutor } .