public class io.netty.channel.pool.FixedChannelPool extends io.netty.channel.pool.SimpleChannelPool
{
private final io.netty.util.concurrent.EventExecutor executor;
private final long acquireTimeoutNanos;
private final java.lang.Runnable timeoutTask;
private final java.util.Queue pendingAcquireQueue;
private final int maxConnections;
private final int maxPendingAcquires;
private final java.util.concurrent.atomic.AtomicInteger acquiredChannelCount;
private int pendingAcquireCount;
private boolean closed;
static final boolean $assertionsDisabled;
public void <init>(io.netty.bootstrap.Bootstrap, io.netty.channel.pool.ChannelPoolHandler, int)
{
io.netty.bootstrap.Bootstrap v;
io.netty.channel.pool.FixedChannelPool v;
int v;
io.netty.channel.pool.ChannelPoolHandler v;
v := @this: io.netty.channel.pool.FixedChannelPool;
v := @parameter: io.netty.bootstrap.Bootstrap;
v := @parameter: io.netty.channel.pool.ChannelPoolHandler;
v := @parameter: int;
specialinvoke v.<io.netty.channel.pool.FixedChannelPool: void <init>(io.netty.bootstrap.Bootstrap,io.netty.channel.pool.ChannelPoolHandler,int,int)>(v, v, v, 2147483647);
return;
}
public void <init>(io.netty.bootstrap.Bootstrap, io.netty.channel.pool.ChannelPoolHandler, int, int)
{
io.netty.bootstrap.Bootstrap v;
io.netty.channel.pool.FixedChannelPool v;
io.netty.channel.pool.ChannelHealthChecker v;
int v, v;
io.netty.channel.pool.ChannelPoolHandler v;
v := @this: io.netty.channel.pool.FixedChannelPool;
v := @parameter: io.netty.bootstrap.Bootstrap;
v := @parameter: io.netty.channel.pool.ChannelPoolHandler;
v := @parameter: int;
v := @parameter: int;
v = <io.netty.channel.pool.ChannelHealthChecker: io.netty.channel.pool.ChannelHealthChecker ACTIVE>;
specialinvoke v.<io.netty.channel.pool.FixedChannelPool: void <init>(io.netty.bootstrap.Bootstrap,io.netty.channel.pool.ChannelPoolHandler,io.netty.channel.pool.ChannelHealthChecker,io.netty.channel.pool.FixedChannelPool$AcquireTimeoutAction,long,int,int)>(v, v, v, null, -1L, v, v);
return;
}
public void <init>(io.netty.bootstrap.Bootstrap, io.netty.channel.pool.ChannelPoolHandler, io.netty.channel.pool.ChannelHealthChecker, io.netty.channel.pool.FixedChannelPool$AcquireTimeoutAction, long, int, int)
{
io.netty.channel.pool.FixedChannelPool$AcquireTimeoutAction v;
io.netty.channel.pool.ChannelHealthChecker v;
long v;
io.netty.bootstrap.Bootstrap v;
io.netty.channel.pool.FixedChannelPool v;
int v, v;
io.netty.channel.pool.ChannelPoolHandler v;
v := @this: io.netty.channel.pool.FixedChannelPool;
v := @parameter: io.netty.bootstrap.Bootstrap;
v := @parameter: io.netty.channel.pool.ChannelPoolHandler;
v := @parameter: io.netty.channel.pool.ChannelHealthChecker;
v := @parameter: io.netty.channel.pool.FixedChannelPool$AcquireTimeoutAction;
v := @parameter: long;
v := @parameter: int;
v := @parameter: int;
specialinvoke v.<io.netty.channel.pool.FixedChannelPool: void <init>(io.netty.bootstrap.Bootstrap,io.netty.channel.pool.ChannelPoolHandler,io.netty.channel.pool.ChannelHealthChecker,io.netty.channel.pool.FixedChannelPool$AcquireTimeoutAction,long,int,int,boolean)>(v, v, v, v, v, v, v, 1);
return;
}
public void <init>(io.netty.bootstrap.Bootstrap, io.netty.channel.pool.ChannelPoolHandler, io.netty.channel.pool.ChannelHealthChecker, io.netty.channel.pool.FixedChannelPool$AcquireTimeoutAction, long, int, int, boolean)
{
io.netty.channel.pool.FixedChannelPool$AcquireTimeoutAction v;
io.netty.channel.pool.ChannelHealthChecker v;
long v;
io.netty.bootstrap.Bootstrap v;
io.netty.channel.pool.FixedChannelPool v;
int v, v;
io.netty.channel.pool.ChannelPoolHandler v;
boolean v;
v := @this: io.netty.channel.pool.FixedChannelPool;
v := @parameter: io.netty.bootstrap.Bootstrap;
v := @parameter: io.netty.channel.pool.ChannelPoolHandler;
v := @parameter: io.netty.channel.pool.ChannelHealthChecker;
v := @parameter: io.netty.channel.pool.FixedChannelPool$AcquireTimeoutAction;
v := @parameter: long;
v := @parameter: int;
v := @parameter: int;
v := @parameter: boolean;
specialinvoke v.<io.netty.channel.pool.FixedChannelPool: void <init>(io.netty.bootstrap.Bootstrap,io.netty.channel.pool.ChannelPoolHandler,io.netty.channel.pool.ChannelHealthChecker,io.netty.channel.pool.FixedChannelPool$AcquireTimeoutAction,long,int,int,boolean,boolean)>(v, v, v, v, v, v, v, v, 1);
return;
}
public void <init>(io.netty.bootstrap.Bootstrap, io.netty.channel.pool.ChannelPoolHandler, io.netty.channel.pool.ChannelHealthChecker, io.netty.channel.pool.FixedChannelPool$AcquireTimeoutAction, long, int, int, boolean, boolean)
{
io.netty.channel.pool.FixedChannelPool$AcquireTimeoutAction v;
java.lang.Error v;
long v, v;
java.lang.NullPointerException v;
io.netty.channel.pool.FixedChannelPool$2 v;
byte v, v, v;
int[] v;
io.netty.channel.pool.FixedChannelPool v;
java.util.concurrent.atomic.AtomicInteger v;
io.netty.channel.pool.FixedChannelPool$1 v;
int v, v, v, v;
io.netty.channel.pool.ChannelPoolHandler v;
java.lang.String v;
boolean v, v;
io.netty.channel.EventLoopGroup v;
io.netty.channel.pool.ChannelHealthChecker v;
io.netty.channel.EventLoop v;
java.lang.IllegalArgumentException v;
java.util.concurrent.TimeUnit v;
io.netty.bootstrap.Bootstrap v;
io.netty.bootstrap.BootstrapConfig v;
java.util.ArrayDeque v;
v := @this: io.netty.channel.pool.FixedChannelPool;
v := @parameter: io.netty.bootstrap.Bootstrap;
v := @parameter: io.netty.channel.pool.ChannelPoolHandler;
v := @parameter: io.netty.channel.pool.ChannelHealthChecker;
v := @parameter: io.netty.channel.pool.FixedChannelPool$AcquireTimeoutAction;
v := @parameter: long;
v := @parameter: int;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: boolean;
specialinvoke v.<io.netty.channel.pool.SimpleChannelPool: void <init>(io.netty.bootstrap.Bootstrap,io.netty.channel.pool.ChannelPoolHandler,io.netty.channel.pool.ChannelHealthChecker,boolean,boolean)>(v, v, v, v, v);
v = new java.util.ArrayDeque;
specialinvoke v.<java.util.ArrayDeque: void <init>()>();
v.<io.netty.channel.pool.FixedChannelPool: java.util.Queue pendingAcquireQueue> = v;
v = new java.util.concurrent.atomic.AtomicInteger;
specialinvoke v.<java.util.concurrent.atomic.AtomicInteger: void <init>()>();
v.<io.netty.channel.pool.FixedChannelPool: java.util.concurrent.atomic.AtomicInteger acquiredChannelCount> = v;
staticinvoke <io.netty.util.internal.ObjectUtil: int checkPositive(int,java.lang.String)>(v, "maxConnections");
staticinvoke <io.netty.util.internal.ObjectUtil: int checkPositive(int,java.lang.String)>(v, "maxPendingAcquires");
if v != null goto label;
v = v cmp -1L;
if v != 0 goto label;
v.<io.netty.channel.pool.FixedChannelPool: java.lang.Runnable timeoutTask> = null;
v.<io.netty.channel.pool.FixedChannelPool: long acquireTimeoutNanos> = -1L;
goto label;
label:
if v != null goto label;
v = v cmp -1L;
if v == 0 goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("action");
throw v;
label:
if v == null goto label;
v = v cmp 0L;
if v >= 0 goto label;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("acquireTimeoutMillis: \u (expected: >= 0)");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(v);
v.<io.netty.channel.pool.FixedChannelPool: long acquireTimeoutNanos> = v;
v = <io.netty.channel.pool.FixedChannelPool$7: int[] $SwitchMap$io$netty$channel$pool$FixedChannelPool$AcquireTimeoutAction>;
v = virtualinvoke v.<io.netty.channel.pool.FixedChannelPool$AcquireTimeoutAction: int ordinal()>();
v = v[v];
lookupswitch(v)
{
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
v = new io.netty.channel.pool.FixedChannelPool$1;
specialinvoke v.<io.netty.channel.pool.FixedChannelPool$1: void <init>(io.netty.channel.pool.FixedChannelPool)>(v);
v.<io.netty.channel.pool.FixedChannelPool: java.lang.Runnable timeoutTask> = v;
goto label;
label:
v = new io.netty.channel.pool.FixedChannelPool$2;
specialinvoke v.<io.netty.channel.pool.FixedChannelPool$2: void <init>(io.netty.channel.pool.FixedChannelPool)>(v);
v.<io.netty.channel.pool.FixedChannelPool: java.lang.Runnable timeoutTask> = v;
goto label;
label:
v = new java.lang.Error;
specialinvoke v.<java.lang.Error: void <init>()>();
throw v;
label:
v = virtualinvoke v.<io.netty.bootstrap.Bootstrap: io.netty.bootstrap.BootstrapConfig config()>();
v = virtualinvoke v.<io.netty.bootstrap.BootstrapConfig: io.netty.channel.EventLoopGroup group()>();
v = interfaceinvoke v.<io.netty.channel.EventLoopGroup: io.netty.channel.EventLoop next()>();
v.<io.netty.channel.pool.FixedChannelPool: io.netty.util.concurrent.EventExecutor executor> = v;
v.<io.netty.channel.pool.FixedChannelPool: int maxConnections> = v;
v.<io.netty.channel.pool.FixedChannelPool: int maxPendingAcquires> = v;
return;
}
public int acquiredChannelCount()
{
int v;
io.netty.channel.pool.FixedChannelPool v;
java.util.concurrent.atomic.AtomicInteger v;
v := @this: io.netty.channel.pool.FixedChannelPool;
v = v.<io.netty.channel.pool.FixedChannelPool: java.util.concurrent.atomic.AtomicInteger acquiredChannelCount>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
return v;
}
public io.netty.util.concurrent.Future acquire(io.netty.util.concurrent.Promise)
{
io.netty.channel.pool.FixedChannelPool$3 v;
io.netty.util.concurrent.EventExecutor v, v;
java.lang.Throwable v;
io.netty.util.concurrent.Promise v;
io.netty.channel.pool.FixedChannelPool v;
boolean v;
v := @this: io.netty.channel.pool.FixedChannelPool;
v := @parameter: io.netty.util.concurrent.Promise;
label:
v = v.<io.netty.channel.pool.FixedChannelPool: io.netty.util.concurrent.EventExecutor executor>;
v = interfaceinvoke v.<io.netty.util.concurrent.EventExecutor: boolean inEventLoop()>();
if v == 0 goto label;
specialinvoke v.<io.netty.channel.pool.FixedChannelPool: void acquire0(io.netty.util.concurrent.Promise)>(v);
goto label;
label:
v = v.<io.netty.channel.pool.FixedChannelPool: io.netty.util.concurrent.EventExecutor executor>;
v = new io.netty.channel.pool.FixedChannelPool$3;
specialinvoke v.<io.netty.channel.pool.FixedChannelPool$3: void <init>(io.netty.channel.pool.FixedChannelPool,io.netty.util.concurrent.Promise)>(v, v);
interfaceinvoke v.<io.netty.util.concurrent.EventExecutor: void execute(java.lang.Runnable)>(v);
label:
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<io.netty.util.concurrent.Promise: boolean tryFailure(java.lang.Throwable)>(v);
label:
return v;
catch java.lang.Throwable from label to label with label;
}
private void acquire0(io.netty.util.concurrent.Promise)
{
java.lang.IllegalStateException v;
io.netty.channel.pool.FixedChannelPool$AcquireTask v;
io.netty.util.concurrent.ScheduledFuture v;
java.lang.Runnable v, v;
io.netty.channel.pool.FixedChannelPool v;
java.util.concurrent.atomic.AtomicInteger v, v;
boolean v, v, v, v, v, v;
io.netty.channel.pool.FixedChannelPool$AcquireListener v;
java.util.Queue v;
io.netty.util.concurrent.EventExecutor v, v, v;
java.lang.Throwable v;
long v;
java.lang.AssertionError v, v, v;
int v, v, v, v, v, v, v, v;
io.netty.util.concurrent.Promise v, v;
java.util.concurrent.TimeUnit v;
v := @this: io.netty.channel.pool.FixedChannelPool;
v := @parameter: io.netty.util.concurrent.Promise;
label:
v = <io.netty.channel.pool.FixedChannelPool: boolean $assertionsDisabled>;
if v != 0 goto label;
v = v.<io.netty.channel.pool.FixedChannelPool: io.netty.util.concurrent.EventExecutor executor>;
v = interfaceinvoke v.<io.netty.util.concurrent.EventExecutor: boolean inEventLoop()>();
if v != 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = v.<io.netty.channel.pool.FixedChannelPool: boolean closed>;
if v == 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("FixedChannelPool was closed");
interfaceinvoke v.<io.netty.util.concurrent.Promise: io.netty.util.concurrent.Promise setFailure(java.lang.Throwable)>(v);
label:
return;
label:
v = v.<io.netty.channel.pool.FixedChannelPool: java.util.concurrent.atomic.AtomicInteger acquiredChannelCount>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
v = v.<io.netty.channel.pool.FixedChannelPool: int maxConnections>;
if v >= v goto label;
v = <io.netty.channel.pool.FixedChannelPool: boolean $assertionsDisabled>;
if v != 0 goto label;
v = v.<io.netty.channel.pool.FixedChannelPool: java.util.concurrent.atomic.AtomicInteger acquiredChannelCount>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
if v >= 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = v.<io.netty.channel.pool.FixedChannelPool: io.netty.util.concurrent.EventExecutor executor>;
v = interfaceinvoke v.<io.netty.util.concurrent.EventExecutor: io.netty.util.concurrent.Promise newPromise()>();
v = new io.netty.channel.pool.FixedChannelPool$AcquireListener;
specialinvoke v.<io.netty.channel.pool.FixedChannelPool$AcquireListener: void <init>(io.netty.channel.pool.FixedChannelPool,io.netty.util.concurrent.Promise)>(v, v);
virtualinvoke v.<io.netty.channel.pool.FixedChannelPool$AcquireListener: void acquired()>();
interfaceinvoke v.<io.netty.util.concurrent.Promise: io.netty.util.concurrent.Promise addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
specialinvoke v.<io.netty.channel.pool.SimpleChannelPool: io.netty.util.concurrent.Future acquire(io.netty.util.concurrent.Promise)>(v);
goto label;
label:
v = v.<io.netty.channel.pool.FixedChannelPool: int pendingAcquireCount>;
v = v.<io.netty.channel.pool.FixedChannelPool: int maxPendingAcquires>;
if v < v goto label;
specialinvoke v.<io.netty.channel.pool.FixedChannelPool: void tooManyOutstanding(io.netty.util.concurrent.Promise)>(v);
goto label;
label:
v = new io.netty.channel.pool.FixedChannelPool$AcquireTask;
specialinvoke v.<io.netty.channel.pool.FixedChannelPool$AcquireTask: void <init>(io.netty.channel.pool.FixedChannelPool,io.netty.util.concurrent.Promise)>(v, v);
v = v.<io.netty.channel.pool.FixedChannelPool: java.util.Queue pendingAcquireQueue>;
v = interfaceinvoke v.<java.util.Queue: boolean offer(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<io.netty.channel.pool.FixedChannelPool: int pendingAcquireCount>;
v = v + 1;
v.<io.netty.channel.pool.FixedChannelPool: int pendingAcquireCount> = v;
v = v.<io.netty.channel.pool.FixedChannelPool: java.lang.Runnable timeoutTask>;
if v == null goto label;
v = v.<io.netty.channel.pool.FixedChannelPool: io.netty.util.concurrent.EventExecutor executor>;
v = v.<io.netty.channel.pool.FixedChannelPool: java.lang.Runnable timeoutTask>;
v = v.<io.netty.channel.pool.FixedChannelPool: long acquireTimeoutNanos>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit NANOSECONDS>;
v = interfaceinvoke v.<io.netty.util.concurrent.EventExecutor: io.netty.util.concurrent.ScheduledFuture schedule(java.lang.Runnable,long,java.util.concurrent.TimeUnit)>(v, v, v);
v.<io.netty.channel.pool.FixedChannelPool$AcquireTask: java.util.concurrent.ScheduledFuture timeoutFuture> = v;
goto label;
label:
specialinvoke v.<io.netty.channel.pool.FixedChannelPool: void tooManyOutstanding(io.netty.util.concurrent.Promise)>(v);
label:
v = <io.netty.channel.pool.FixedChannelPool: boolean $assertionsDisabled>;
if v != 0 goto label;
v = v.<io.netty.channel.pool.FixedChannelPool: int pendingAcquireCount>;
if v > 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v := @caughtexception;
interfaceinvoke v.<io.netty.util.concurrent.Promise: boolean tryFailure(java.lang.Throwable)>(v);
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private void tooManyOutstanding(io.netty.util.concurrent.Promise)
{
java.lang.IllegalStateException v;
io.netty.util.concurrent.Promise v;
io.netty.channel.pool.FixedChannelPool v;
v := @this: io.netty.channel.pool.FixedChannelPool;
v := @parameter: io.netty.util.concurrent.Promise;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Too many outstanding acquire operations");
interfaceinvoke v.<io.netty.util.concurrent.Promise: io.netty.util.concurrent.Promise setFailure(java.lang.Throwable)>(v);
return;
}
public io.netty.util.concurrent.Future release(io.netty.channel.Channel, io.netty.util.concurrent.Promise)
{
io.netty.channel.Channel v;
io.netty.util.concurrent.EventExecutor v;
io.netty.channel.pool.FixedChannelPool$4 v;
io.netty.util.concurrent.Promise v, v, v;
io.netty.channel.pool.FixedChannelPool v;
v := @this: io.netty.channel.pool.FixedChannelPool;
v := @parameter: io.netty.channel.Channel;
v := @parameter: io.netty.util.concurrent.Promise;
staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "promise");
v = v.<io.netty.channel.pool.FixedChannelPool: io.netty.util.concurrent.EventExecutor executor>;
v = interfaceinvoke v.<io.netty.util.concurrent.EventExecutor: io.netty.util.concurrent.Promise newPromise()>();
v = new io.netty.channel.pool.FixedChannelPool$4;
specialinvoke v.<io.netty.channel.pool.FixedChannelPool$4: void <init>(io.netty.channel.pool.FixedChannelPool,io.netty.channel.Channel,io.netty.util.concurrent.Promise)>(v, v, v);
v = interfaceinvoke v.<io.netty.util.concurrent.Promise: io.netty.util.concurrent.Promise addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
specialinvoke v.<io.netty.channel.pool.SimpleChannelPool: io.netty.util.concurrent.Future release(io.netty.channel.Channel,io.netty.util.concurrent.Promise)>(v, v);
return v;
}
private void decrementAndRunTaskQueue()
{
io.netty.channel.pool.FixedChannelPool v;
java.util.concurrent.atomic.AtomicInteger v;
int v;
java.lang.AssertionError v;
boolean v;
v := @this: io.netty.channel.pool.FixedChannelPool;
v = v.<io.netty.channel.pool.FixedChannelPool: java.util.concurrent.atomic.AtomicInteger acquiredChannelCount>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int decrementAndGet()>();
v = <io.netty.channel.pool.FixedChannelPool: boolean $assertionsDisabled>;
if v != 0 goto label;
if v >= 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
specialinvoke v.<io.netty.channel.pool.FixedChannelPool: void runTaskQueue()>();
return;
}
private void runTaskQueue()
{
java.util.concurrent.ScheduledFuture v;
java.lang.AssertionError v, v;
io.netty.channel.pool.FixedChannelPool v;
java.util.concurrent.atomic.AtomicInteger v, v;
int v, v, v, v, v, v;
boolean v, v;
io.netty.util.concurrent.Promise v;
java.lang.Object v;
java.util.Queue v;
v := @this: io.netty.channel.pool.FixedChannelPool;
label:
v = v.<io.netty.channel.pool.FixedChannelPool: java.util.concurrent.atomic.AtomicInteger acquiredChannelCount>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
v = v.<io.netty.channel.pool.FixedChannelPool: int maxConnections>;
if v >= v goto label;
v = v.<io.netty.channel.pool.FixedChannelPool: java.util.Queue pendingAcquireQueue>;
v = interfaceinvoke v.<java.util.Queue: java.lang.Object poll()>();
if v == null goto label;
v = v.<io.netty.channel.pool.FixedChannelPool$AcquireTask: java.util.concurrent.ScheduledFuture timeoutFuture>;
if v == null goto label;
interfaceinvoke v.<java.util.concurrent.ScheduledFuture: boolean cancel(boolean)>(0);
label:
v = v.<io.netty.channel.pool.FixedChannelPool: int pendingAcquireCount>;
v = v - 1;
v.<io.netty.channel.pool.FixedChannelPool: int pendingAcquireCount> = v;
virtualinvoke v.<io.netty.channel.pool.FixedChannelPool$AcquireTask: void acquired()>();
v = v.<io.netty.channel.pool.FixedChannelPool$AcquireTask: io.netty.util.concurrent.Promise promise>;
specialinvoke v.<io.netty.channel.pool.SimpleChannelPool: io.netty.util.concurrent.Future acquire(io.netty.util.concurrent.Promise)>(v);
goto label;
label:
v = <io.netty.channel.pool.FixedChannelPool: boolean $assertionsDisabled>;
if v != 0 goto label;
v = v.<io.netty.channel.pool.FixedChannelPool: int pendingAcquireCount>;
if v >= 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = <io.netty.channel.pool.FixedChannelPool: boolean $assertionsDisabled>;
if v != 0 goto label;
v = v.<io.netty.channel.pool.FixedChannelPool: java.util.concurrent.atomic.AtomicInteger acquiredChannelCount>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
if v >= 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
return;
}
public void close()
{
io.netty.channel.pool.FixedChannelPool v;
java.lang.InterruptedException v;
java.lang.Thread v;
java.lang.RuntimeException v;
io.netty.util.concurrent.Future v;
v := @this: io.netty.channel.pool.FixedChannelPool;
label:
v = virtualinvoke v.<io.netty.channel.pool.FixedChannelPool: io.netty.util.concurrent.Future closeAsync()>();
interfaceinvoke v.<io.netty.util.concurrent.Future: io.netty.util.concurrent.Future await()>();
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.lang.InterruptedException from label to label with label;
}
public io.netty.util.concurrent.Future closeAsync()
{
io.netty.util.concurrent.EventExecutor v, v, v;
io.netty.util.concurrent.Promise v;
io.netty.channel.pool.FixedChannelPool$5 v;
io.netty.channel.pool.FixedChannelPool v;
io.netty.util.concurrent.Future v;
boolean v;
v := @this: io.netty.channel.pool.FixedChannelPool;
v = v.<io.netty.channel.pool.FixedChannelPool: io.netty.util.concurrent.EventExecutor executor>;
v = interfaceinvoke v.<io.netty.util.concurrent.EventExecutor: boolean inEventLoop()>();
if v == 0 goto label;
v = specialinvoke v.<io.netty.channel.pool.FixedChannelPool: io.netty.util.concurrent.Future close0()>();
return v;
label:
v = v.<io.netty.channel.pool.FixedChannelPool: io.netty.util.concurrent.EventExecutor executor>;
v = interfaceinvoke v.<io.netty.util.concurrent.EventExecutor: io.netty.util.concurrent.Promise newPromise()>();
v = v.<io.netty.channel.pool.FixedChannelPool: io.netty.util.concurrent.EventExecutor executor>;
v = new io.netty.channel.pool.FixedChannelPool$5;
specialinvoke v.<io.netty.channel.pool.FixedChannelPool$5: void <init>(io.netty.channel.pool.FixedChannelPool,io.netty.util.concurrent.Promise)>(v, v);
interfaceinvoke v.<io.netty.util.concurrent.EventExecutor: void execute(java.lang.Runnable)>(v);
return v;
}
private io.netty.util.concurrent.Future close0()
{
io.netty.util.concurrent.EventExecutor v;
java.util.concurrent.ScheduledFuture v;
java.lang.AssertionError v;
io.netty.channel.pool.FixedChannelPool$6 v;
io.netty.util.concurrent.GlobalEventExecutor v, v;
io.netty.channel.pool.FixedChannelPool v;
java.util.concurrent.atomic.AtomicInteger v;
boolean v, v, v;
io.netty.util.concurrent.Promise v;
java.nio.channels.ClosedChannelException v;
java.lang.Object v;
java.util.Queue v;
io.netty.util.concurrent.Future v, v;
v := @this: io.netty.channel.pool.FixedChannelPool;
v = <io.netty.channel.pool.FixedChannelPool: boolean $assertionsDisabled>;
if v != 0 goto label;
v = v.<io.netty.channel.pool.FixedChannelPool: io.netty.util.concurrent.EventExecutor executor>;
v = interfaceinvoke v.<io.netty.util.concurrent.EventExecutor: boolean inEventLoop()>();
if v != 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = v.<io.netty.channel.pool.FixedChannelPool: boolean closed>;
if v != 0 goto label;
v.<io.netty.channel.pool.FixedChannelPool: boolean closed> = 1;
label:
v = v.<io.netty.channel.pool.FixedChannelPool: java.util.Queue pendingAcquireQueue>;
v = interfaceinvoke v.<java.util.Queue: java.lang.Object poll()>();
if v == null goto label;
v = v.<io.netty.channel.pool.FixedChannelPool$AcquireTask: java.util.concurrent.ScheduledFuture timeoutFuture>;
if v == null goto label;
interfaceinvoke v.<java.util.concurrent.ScheduledFuture: boolean cancel(boolean)>(0);
label:
v = v.<io.netty.channel.pool.FixedChannelPool$AcquireTask: io.netty.util.concurrent.Promise promise>;
v = new java.nio.channels.ClosedChannelException;
specialinvoke v.<java.nio.channels.ClosedChannelException: void <init>()>();
interfaceinvoke v.<io.netty.util.concurrent.Promise: io.netty.util.concurrent.Promise setFailure(java.lang.Throwable)>(v);
goto label;
label:
v = v.<io.netty.channel.pool.FixedChannelPool: java.util.concurrent.atomic.AtomicInteger acquiredChannelCount>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: void set(int)>(0);
v.<io.netty.channel.pool.FixedChannelPool: int pendingAcquireCount> = 0;
v = <io.netty.util.concurrent.GlobalEventExecutor: io.netty.util.concurrent.GlobalEventExecutor INSTANCE>;
v = new io.netty.channel.pool.FixedChannelPool$6;
specialinvoke v.<io.netty.channel.pool.FixedChannelPool$6: void <init>(io.netty.channel.pool.FixedChannelPool)>(v);
v = virtualinvoke v.<io.netty.util.concurrent.GlobalEventExecutor: io.netty.util.concurrent.Future submit(java.util.concurrent.Callable)>(v);
return v;
label:
v = <io.netty.util.concurrent.GlobalEventExecutor: io.netty.util.concurrent.GlobalEventExecutor INSTANCE>;
v = virtualinvoke v.<io.netty.util.concurrent.GlobalEventExecutor: io.netty.util.concurrent.Future newSucceededFuture(java.lang.Object)>(null);
return v;
}
static void <clinit>()
{
java.lang.Class v;
boolean v, v;
v = class "Lio/netty/channel/pool/FixedChannelPool;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<io.netty.channel.pool.FixedChannelPool: boolean $assertionsDisabled> = v;
return;
}
}