protected PoolWaitFuture < E > createFuture ( final PoolKey < K > key ) { return new PoolWaitFuture < E > ( lock ) { protected E getPoolObject ( long timeout , TimeUnit unit ) throws IOException , InterruptedException , TimeoutException { return getBlockingUntilAvailableOrTimeout ( key , timeout , unit , this ) ; } } ; }
Creates a Future which will wait for the Keyed Object to become available or timeout