docs: public void destroyAllBufferPools() {
  		synchronized (factoryLock) {
  			// create a copy to avoid concurrent modification exceptions
  			LocalBufferPool[] poolsCopy = allBufferPools.toArray(new LocalBufferPool[allBufferPools.size()]);
  
  			for (LocalBufferPool pool : poolsCopy) {
  				pool.lazyDestroy();
  			}
  
  			// some sanity checks
  			if (allBufferPools.size() > 0 || numTotalRequiredBuffers > 0) {
  				throw new IllegalStateException("NetworkBufferPool is not empty after destroying all LocalBufferPools");
  			}
  		}
  	}