Class ReleaseOnceChannelPool
- java.lang.Object
-
- software.amazon.awssdk.http.nio.netty.internal.ReleaseOnceChannelPool
-
- All Implemented Interfaces:
io.netty.channel.pool.ChannelPool
,Closeable
,AutoCloseable
,SdkChannelPool
public class ReleaseOnceChannelPool extends Object implements SdkChannelPool
Wrapper around aChannelPool
to protect it from having the same channel released twice. This can cause issues inFixedChannelPool
andHttp2MultiplexedChannelPool
which has a simple mechanism to track leased connections.
-
-
Constructor Summary
Constructors Constructor Description ReleaseOnceChannelPool(SdkChannelPool delegate)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description io.netty.util.concurrent.Future<io.netty.channel.Channel>
acquire()
io.netty.util.concurrent.Future<io.netty.channel.Channel>
acquire(io.netty.util.concurrent.Promise<io.netty.channel.Channel> promise)
void
close()
CompletableFuture<Void>
collectChannelPoolMetrics(MetricCollector metrics)
Collect channel pool metrics into the providedMetricCollector
collection, completing the returned future when all metric publishing is complete.io.netty.util.concurrent.Future<Void>
release(io.netty.channel.Channel channel)
io.netty.util.concurrent.Future<Void>
release(io.netty.channel.Channel channel, io.netty.util.concurrent.Promise<Void> promise)
-
-
-
Constructor Detail
-
ReleaseOnceChannelPool
public ReleaseOnceChannelPool(SdkChannelPool delegate)
-
-
Method Detail
-
acquire
public io.netty.util.concurrent.Future<io.netty.channel.Channel> acquire()
- Specified by:
acquire
in interfaceio.netty.channel.pool.ChannelPool
-
acquire
public io.netty.util.concurrent.Future<io.netty.channel.Channel> acquire(io.netty.util.concurrent.Promise<io.netty.channel.Channel> promise)
- Specified by:
acquire
in interfaceio.netty.channel.pool.ChannelPool
-
release
public io.netty.util.concurrent.Future<Void> release(io.netty.channel.Channel channel)
- Specified by:
release
in interfaceio.netty.channel.pool.ChannelPool
-
release
public io.netty.util.concurrent.Future<Void> release(io.netty.channel.Channel channel, io.netty.util.concurrent.Promise<Void> promise)
- Specified by:
release
in interfaceio.netty.channel.pool.ChannelPool
-
close
public void close()
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceio.netty.channel.pool.ChannelPool
- Specified by:
close
in interfaceCloseable
-
collectChannelPoolMetrics
public CompletableFuture<Void> collectChannelPoolMetrics(MetricCollector metrics)
Description copied from interface:SdkChannelPool
Collect channel pool metrics into the providedMetricCollector
collection, completing the returned future when all metric publishing is complete.- Specified by:
collectChannelPoolMetrics
in interfaceSdkChannelPool
- Parameters:
metrics
- The collection to which all metrics should be added.- Returns:
- A future that is completed when all metric publishing is complete.
-
-