code: @SuppressWarnings("unchecked")
  	public synchronized <T> List<T> getInstances(Key<T> key) {
  		checkState(injector != null && poolScope != null, "WorkerPool has not been initialized, make sure Boot module and ServiceGraph is used");
  		checkArgument(injector.getExistingBinding(key) != null, "Binding for %s not found", key);
  
  
  		List<T> result = (List<T>) pool.get(key);
  		if (result != null) {
  			return result;
  		}
  		result = new ArrayList<>();
  
  		for (int i = 0; i < workers; i++) {
  			result.add(poolScope.inScope(this, i, () -> injector.getInstance(key)));
  		}
  
  		return result;
  	}
docs: endregion