public void shutdown() {
		try {
			service.shutdown();
			boolean status = service.awaitTermination(5, TimeUnit.SECONDS);
			if (!status) {
				System.err.println("not all tasks reached the end");
			}
		} catch (InterruptedException e) {
			error.addSuppressed(e);
		}
		synchronized (currentOpen) {
			currentOpen.notify();
		}

		// kill the rest!
		if (socket != null) {
			try {
				socket.close();
			} catch (IOException e) {
				error.addSuppressed(e);
			}
		}
	}