docs: public static boolean shutdownAndAwaitTermination(ExecutorService pool, long waitSeconds) {
  		pool.shutdown(); // Disable new tasks from being submitted
  		try {
  			// Wait a while for existing tasks to terminate
  			if(!pool.awaitTermination(waitSeconds, TimeUnit.SECONDS)) {
  				//logger.warn("Thread pool is still running: {}", pool);
  				pool.shutdownNow(); // Cancel currently executing tasks
  				// Wait a while for tasks to respond to being cancelled
  				if(!pool.awaitTermination(waitSeconds, TimeUnit.SECONDS)){
  					//logger.warn("Thread pool is not terminating: {}", pool);
  					return false;
  				}else{
  					return true;
  				}
  			}else{
  				return true;
  			}
  		} catch(InterruptedException ie) {
  			// (Re-)Cancel if current thread also interrupted
  			pool.shutdownNow();
  			// Preserve interrupt status
  			Thread.currentThread().interrupt();
  			return false;
  		}
  	}