@Override
	public void shutdown() {
		if (shutdown)
			return;
		super.shutdown();

		final Queue<Task<?>> queue = this.queue;
		while (true) {
			final Task<?> task = queue.poll();
			if (task != null) {
				task.cancel(false);
			} else {
				break;
			}
		}
		for (final Thread thread : threads) {
			thread.interrupt();
		}
	}