public class io.vertx.core.net.impl.clientconnection.Pool<C>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.vertx.core.net.impl.clientconnection.Pool
super_class: java.lang.Object
{
private final io.vertx.core.impl.ContextInternal context;
descriptor: Lio/vertx/core/impl/ContextInternal;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.vertx.core.net.impl.clientconnection.ConnectionProvider<C> connector;
descriptor: Lio/vertx/core/net/impl/clientconnection/ConnectionProvider;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/vertx/core/net/impl/clientconnection/ConnectionProvider<TC;>;
private final java.util.function.Consumer<C> connectionAdded;
descriptor: Ljava/util/function/Consumer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/function/Consumer<TC;>;
private final java.util.function.Consumer<C> connectionRemoved;
descriptor: Ljava/util/function/Consumer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/function/Consumer<TC;>;
private final int queueMaxSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Deque<io.vertx.core.net.impl.clientconnection.Pool$Waiter<C>> waitersQueue;
descriptor: Ljava/util/Deque;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Deque<Lio/vertx/core/net/impl/clientconnection/Pool$Waiter<TC;>;>;
private final java.util.Deque<io.vertx.core.net.impl.clientconnection.Pool<C>.Holder> available;
descriptor: Ljava/util/Deque;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Deque<Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;>;
private final boolean fifo;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long capacity;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long connecting;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final long initialWeight;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long maxWeight;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long weight;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private boolean checkInProgress;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lio/vertx/core/net/impl/clientconnection/Pool;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic io.vertx.core.net.impl.clientconnection.Pool.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(io.vertx.core.Context, io.vertx.core.net.impl.clientconnection.ConnectionProvider<C>, int, long, long, java.util.function.Consumer<C>, java.util.function.Consumer<C>, );
descriptor: (Lio/vertx/core/Context;Lio/vertx/core/net/impl/clientconnection/ConnectionProvider;IJJLjava/util/function/Consumer;Ljava/util/function/Consumer;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=11, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 6 start local 8 start local 9 start local 10 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
putfield io.vertx.core.net.impl.clientconnection.Pool.waitersQueue:Ljava/util/Deque;
2: aload 0
aload 1
checkcast io.vertx.core.impl.ContextInternal
putfield io.vertx.core.net.impl.clientconnection.Pool.context:Lio/vertx/core/impl/ContextInternal;
3: aload 0
lconst_0
putfield io.vertx.core.net.impl.clientconnection.Pool.weight:J
4: aload 0
lload 6
putfield io.vertx.core.net.impl.clientconnection.Pool.maxWeight:J
5: aload 0
lload 4
putfield io.vertx.core.net.impl.clientconnection.Pool.initialWeight:J
6: aload 0
aload 2
putfield io.vertx.core.net.impl.clientconnection.Pool.connector:Lio/vertx/core/net/impl/clientconnection/ConnectionProvider;
7: aload 0
iload 3
putfield io.vertx.core.net.impl.clientconnection.Pool.queueMaxSize:I
8: aload 0
new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
putfield io.vertx.core.net.impl.clientconnection.Pool.available:Ljava/util/Deque;
9: aload 0
aload 8
putfield io.vertx.core.net.impl.clientconnection.Pool.connectionAdded:Ljava/util/function/Consumer;
10: aload 0
aload 9
putfield io.vertx.core.net.impl.clientconnection.Pool.connectionRemoved:Ljava/util/function/Consumer;
11: aload 0
iload 10
putfield io.vertx.core.net.impl.clientconnection.Pool.fifo:Z
12: return
end local 10 end local 9 end local 8 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
0 13 1 context Lio/vertx/core/Context;
0 13 2 connector Lio/vertx/core/net/impl/clientconnection/ConnectionProvider<TC;>;
0 13 3 queueMaxSize I
0 13 4 initialWeight J
0 13 6 maxWeight J
0 13 8 connectionAdded Ljava/util/function/Consumer<TC;>;
0 13 9 connectionRemoved Ljava/util/function/Consumer<TC;>;
0 13 10 fifo Z
Signature: (Lio/vertx/core/Context;Lio/vertx/core/net/impl/clientconnection/ConnectionProvider<TC;>;IJJLjava/util/function/Consumer<TC;>;Ljava/util/function/Consumer<TC;>;Z)V
MethodParameters:
Name Flags
context
connector
queueMaxSize
initialWeight
maxWeight
connectionAdded
connectionRemoved
fifo
public synchronized int waitersInQueue();
descriptor: ()I
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
public synchronized long weight();
descriptor: ()J
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.weight:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
public synchronized long capacity();
descriptor: ()J
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.capacity:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
public synchronized void getConnection(io.vertx.core.Handler<io.vertx.core.AsyncResult<C>>);
descriptor: (Lio/vertx/core/Handler;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new io.vertx.core.net.impl.clientconnection.Pool$Waiter
dup
aload 1
invokespecial io.vertx.core.net.impl.clientconnection.Pool$Waiter.<init>:(Lio/vertx/core/Handler;)V
astore 2
start local 2 1: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.waitersQueue:Ljava/util/Deque;
aload 2
invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
pop
2: aload 0
invokevirtual io.vertx.core.net.impl.clientconnection.Pool.checkProgress:()V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
0 4 1 handler Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TC;>;>;
1 4 2 waiter Lio/vertx/core/net/impl/clientconnection/Pool$Waiter<TC;>;
Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TC;>;>;)V
MethodParameters:
Name Flags
handler
public synchronized void closeIdle();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual io.vertx.core.net.impl.clientconnection.Pool.checkProgress:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
private void checkProgress();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.checkInProgress:Z
ifne 3
aload 0
invokevirtual io.vertx.core.net.impl.clientconnection.Pool.canProgress:()Z
ifeq 3
1: aload 0
iconst_1
putfield io.vertx.core.net.impl.clientconnection.Pool.checkInProgress:Z
2: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.context:Lio/vertx/core/impl/ContextInternal;
invokeinterface io.vertx.core.impl.ContextInternal.nettyEventLoop:()Lio/netty/channel/EventLoop;
aload 0
invokedynamic run(Lio/vertx/core/net/impl/clientconnection/Pool;)Ljava/lang/Runnable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()V
io/vertx/core/net/impl/clientconnection/Pool.checkPendingTasks()V (7)
()V
invokeinterface io.netty.channel.EventLoop.execute:(Ljava/lang/Runnable;)V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
private boolean canProgress();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.size:()I
ifle 3
1: aload 0
invokevirtual io.vertx.core.net.impl.clientconnection.Pool.canAcquireConnection:()Z
ifne 2
aload 0
invokevirtual io.vertx.core.net.impl.clientconnection.Pool.needToCreateConnection:()Z
ifne 2
aload 0
invokevirtual io.vertx.core.net.impl.clientconnection.Pool.canEvictWaiter:()Z
ifne 2
iconst_0
ireturn
StackMap locals:
StackMap stack:
2: iconst_1
ireturn
3: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.capacity:J
lconst_0
lcmp
ifle 4
iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
private void checkPendingTasks();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
dup
astore 2
monitorenter
1: aload 0
invokevirtual io.vertx.core.net.impl.clientconnection.Pool.nextTask:()Ljava/lang/Runnable;
astore 1
start local 1 2: aload 1
ifnonnull 6
3: aload 0
iconst_0
putfield io.vertx.core.net.impl.clientconnection.Pool.checkInProgress:Z
4: aload 2
monitorexit
5: goto 12
6: StackMap locals: java.lang.Runnable io.vertx.core.net.impl.clientconnection.Pool
StackMap stack:
aload 2
monitorexit
7: goto 10
end local 1 StackMap locals: io.vertx.core.net.impl.clientconnection.Pool top io.vertx.core.net.impl.clientconnection.Pool
StackMap stack: java.lang.Throwable
8: aload 2
monitorexit
9: athrow
start local 1 10: StackMap locals: io.vertx.core.net.impl.clientconnection.Pool java.lang.Runnable
StackMap stack:
aload 1
invokeinterface java.lang.Runnable.run:()V
end local 1 11: goto 0
12: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
2 8 1 task Ljava/lang/Runnable;
10 11 1 task Ljava/lang/Runnable;
Exception table:
from to target type
1 5 8 any
6 7 8 any
8 9 8 any
private boolean canAcquireConnection();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.capacity:J
lconst_0
lcmp
ifle 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
private boolean needToCreateConnection();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.weight:J
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.maxWeight:J
lcmp
ifge 1
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.size:()I
i2l
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.connecting:J
lsub
lconst_0
lcmp
ifle 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
private boolean canEvictWaiter();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.queueMaxSize:I
iflt 1
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.size:()I
i2l
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.connecting:J
lsub
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.queueMaxSize:I
i2l
lcmp
ifle 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
private java.lang.Runnable nextTask();
descriptor: ()Ljava/lang/Runnable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.size:()I
ifle 16
1: aload 0
invokevirtual io.vertx.core.net.impl.clientconnection.Pool.canAcquireConnection:()Z
ifeq 8
2: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.available:Ljava/util/Deque;
invokeinterface java.util.Deque.peek:()Ljava/lang/Object;
checkcast io.vertx.core.net.impl.clientconnection.Pool$Holder
astore 1
start local 1 3: aload 0
dup
getfield io.vertx.core.net.impl.clientconnection.Pool.capacity:J
lconst_1
lsub
putfield io.vertx.core.net.impl.clientconnection.Pool.capacity:J
4: aload 1
dup
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
lconst_1
lsub
dup2_x1
putfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
lconst_0
lcmp
ifne 6
5: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.available:Ljava/util/Deque;
invokeinterface java.util.Deque.poll:()Ljava/lang/Object;
pop
6: StackMap locals: io.vertx.core.net.impl.clientconnection.Pool$Holder
StackMap stack:
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.poll:()Ljava/lang/Object;
checkcast io.vertx.core.net.impl.clientconnection.Pool$Waiter
astore 2
start local 2 7: aload 2
aload 1
invokedynamic run(Lio/vertx/core/net/impl/clientconnection/Pool$Waiter;Lio/vertx/core/net/impl/clientconnection/Pool$Holder;)Ljava/lang/Runnable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()V
io/vertx/core/net/impl/clientconnection/Pool.lambda$1(Lio/vertx/core/net/impl/clientconnection/Pool$Waiter;Lio/vertx/core/net/impl/clientconnection/Pool$Holder;)V (6)
()V
areturn
end local 2 end local 1 8: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.vertx.core.net.impl.clientconnection.Pool.needToCreateConnection:()Z
ifeq 13
9: aload 0
dup
getfield io.vertx.core.net.impl.clientconnection.Pool.connecting:J
lconst_1
ladd
putfield io.vertx.core.net.impl.clientconnection.Pool.connecting:J
10: aload 0
dup
getfield io.vertx.core.net.impl.clientconnection.Pool.weight:J
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.initialWeight:J
ladd
putfield io.vertx.core.net.impl.clientconnection.Pool.weight:J
11: new io.vertx.core.net.impl.clientconnection.Pool$Holder
dup
aload 0
invokespecial io.vertx.core.net.impl.clientconnection.Pool$Holder.<init>:(Lio/vertx/core/net/impl/clientconnection/Pool;)V
astore 1
start local 1 12: aload 1
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic run(Lio/vertx/core/net/impl/clientconnection/Pool$Holder;)Ljava/lang/Runnable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()V
io/vertx/core/net/impl/clientconnection/Pool$Holder.connect()V (5)
()V
areturn
end local 1 13: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.vertx.core.net.impl.clientconnection.Pool.canEvictWaiter:()Z
ifeq 33
14: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.removeLast:()Ljava/lang/Object;
checkcast io.vertx.core.net.impl.clientconnection.Pool$Waiter
astore 1
start local 1 15: aload 0
aload 1
invokedynamic run(Lio/vertx/core/net/impl/clientconnection/Pool;Lio/vertx/core/net/impl/clientconnection/Pool$Waiter;)Ljava/lang/Runnable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()V
io/vertx/core/net/impl/clientconnection/Pool.lambda$3(Lio/vertx/core/net/impl/clientconnection/Pool$Waiter;)V (7)
()V
areturn
end local 1 16: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.capacity:J
lconst_0
lcmp
ifle 33
17: aconst_null
astore 1
start local 1 18: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.available:Ljava/util/Deque;
invokeinterface java.util.Deque.iterator:()Ljava/util/Iterator;
astore 2
start local 2 19: goto 29
20: StackMap locals: java.util.List java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.vertx.core.net.impl.clientconnection.Pool$Holder
astore 3
start local 3 21: aload 3
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
aload 3
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.concurrency:J
lcmp
ifne 29
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.connector:Lio/vertx/core/net/impl/clientconnection/ConnectionProvider;
aload 3
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.connection:Ljava/lang/Object;
invokeinterface io.vertx.core.net.impl.clientconnection.ConnectionProvider.isValid:(Ljava/lang/Object;)Z
ifne 29
22: aload 2
invokeinterface java.util.Iterator.remove:()V
23: aload 3
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
lconst_0
lcmp
ifle 25
24: aload 0
dup
getfield io.vertx.core.net.impl.clientconnection.Pool.capacity:J
aload 3
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
lsub
putfield io.vertx.core.net.impl.clientconnection.Pool.capacity:J
25: StackMap locals: io.vertx.core.net.impl.clientconnection.Pool$Holder
StackMap stack:
aload 3
lconst_0
putfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
26: aload 1
ifnonnull 28
27: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
28: StackMap locals:
StackMap stack:
aload 1
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 29: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
end local 2 30: aload 1
ifnull 33
31: aload 1
astore 2
start local 2 32: aload 0
aload 2
invokedynamic run(Lio/vertx/core/net/impl/clientconnection/Pool;Ljava/util/List;)Ljava/lang/Runnable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()V
io/vertx/core/net/impl/clientconnection/Pool.lambda$4(Ljava/util/List;)V (7)
()V
areturn
end local 2 end local 1 33: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
3 8 1 conn Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;
7 8 2 waiter Lio/vertx/core/net/impl/clientconnection/Pool$Waiter<TC;>;
12 13 1 holder Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;
15 16 1 waiter Lio/vertx/core/net/impl/clientconnection/Pool$Waiter<TC;>;
18 33 1 expired Ljava/util/List<Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;>;
19 30 2 it Ljava/util/Iterator<Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;>;
21 29 3 holder Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;
32 33 2 toClose Ljava/util/List<Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;>;
public synchronized void checkInvariants();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=5, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.available:Ljava/util/Deque;
invokeinterface java.util.Deque.iterator:()Ljava/util/Iterator;
astore 4
goto 8
StackMap locals: io.vertx.core.net.impl.clientconnection.Pool int int top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.vertx.core.net.impl.clientconnection.Pool$Holder
astore 3
start local 3 4: iload 1
i2l
aload 3
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.weight:J
ladd
l2i
istore 1
5: iload 2
i2l
aload 3
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
ladd
l2i
istore 2
6: aload 3
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
lconst_1
lcmp
ifge 8
7: new java.lang.IllegalStateException
dup
ldc "Holder capacity must be > 0"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 3 8: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
9: iload 1
i2l
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.weight:J
lcmp
ifeq 11
10: new java.lang.IllegalStateException
dup
ldc "Weight invariant"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: io.vertx.core.net.impl.clientconnection.Pool int int
StackMap stack:
iload 2
i2l
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.capacity:J
lcmp
ifeq 13
12: new java.lang.IllegalStateException
dup
ldc "Capacity invariant"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
1 14 1 weight I
2 14 2 capacity I
4 8 3 holder Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;
private void connectSucceeded(io.vertx.core.net.impl.clientconnection.Pool<C>.Holder, io.vertx.core.net.impl.clientconnection.ConnectResult<C>);
descriptor: (Lio/vertx/core/net/impl/clientconnection/Pool$Holder;Lio/vertx/core/net/impl/clientconnection/ConnectResult;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.connector:Lio/vertx/core/net/impl/clientconnection/ConnectionProvider;
aload 2
invokevirtual io.vertx.core.net.impl.clientconnection.ConnectResult.connection:()Ljava/lang/Object;
invokeinterface io.vertx.core.net.impl.clientconnection.ConnectionProvider.init:(Ljava/lang/Object;)V
1: aload 0
dup
astore 4
monitorenter
2: aload 0
dup
getfield io.vertx.core.net.impl.clientconnection.Pool.connecting:J
lconst_1
lsub
putfield io.vertx.core.net.impl.clientconnection.Pool.connecting:J
3: aload 0
dup
getfield io.vertx.core.net.impl.clientconnection.Pool.weight:J
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.initialWeight:J
lsub
putfield io.vertx.core.net.impl.clientconnection.Pool.weight:J
4: aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.removed:Z
ifeq 8
5: aload 0
invokevirtual io.vertx.core.net.impl.clientconnection.Pool.checkProgress:()V
6: aload 4
monitorexit
7: return
8: StackMap locals: io.vertx.core.net.impl.clientconnection.Pool io.vertx.core.net.impl.clientconnection.Pool$Holder io.vertx.core.net.impl.clientconnection.ConnectResult top io.vertx.core.net.impl.clientconnection.Pool
StackMap stack:
aload 1
iconst_1
putfield io.vertx.core.net.impl.clientconnection.Pool$Holder.initialized:Z
9: aload 0
dup
getfield io.vertx.core.net.impl.clientconnection.Pool.weight:J
aload 2
invokevirtual io.vertx.core.net.impl.clientconnection.ConnectResult.weight:()J
ladd
putfield io.vertx.core.net.impl.clientconnection.Pool.weight:J
10: aload 1
aload 2
invokevirtual io.vertx.core.net.impl.clientconnection.ConnectResult.concurrency:()J
aload 2
invokevirtual io.vertx.core.net.impl.clientconnection.ConnectResult.connection:()Ljava/lang/Object;
aload 2
invokevirtual io.vertx.core.net.impl.clientconnection.ConnectResult.weight:()J
invokevirtual io.vertx.core.net.impl.clientconnection.Pool$Holder.init:(JLjava/lang/Object;J)V
11: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 12: goto 15
13: StackMap locals: io.vertx.core.net.impl.clientconnection.Pool io.vertx.core.net.impl.clientconnection.Pool$Holder io.vertx.core.net.impl.clientconnection.ConnectResult java.util.List io.vertx.core.net.impl.clientconnection.Pool
StackMap stack:
aload 3
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.poll:()Ljava/lang/Object;
checkcast io.vertx.core.net.impl.clientconnection.Pool$Waiter
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
14: aload 1
dup
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
lconst_1
lsub
putfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
15: StackMap locals:
StackMap stack:
aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
lconst_0
lcmp
ifle 16
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.size:()I
ifgt 13
16: StackMap locals:
StackMap stack:
aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
lconst_0
lcmp
ifle 19
17: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.available:Ljava/util/Deque;
aload 1
invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
pop
18: aload 0
dup
getfield io.vertx.core.net.impl.clientconnection.Pool.capacity:J
aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
ladd
putfield io.vertx.core.net.impl.clientconnection.Pool.capacity:J
19: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.vertx.core.net.impl.clientconnection.Pool.checkProgress:()V
20: aload 4
monitorexit
21: goto 24
end local 3 StackMap locals: io.vertx.core.net.impl.clientconnection.Pool io.vertx.core.net.impl.clientconnection.Pool$Holder io.vertx.core.net.impl.clientconnection.ConnectResult top io.vertx.core.net.impl.clientconnection.Pool
StackMap stack: java.lang.Throwable
22: aload 4
monitorexit
23: athrow
start local 3 24: StackMap locals: io.vertx.core.net.impl.clientconnection.Pool io.vertx.core.net.impl.clientconnection.Pool$Holder io.vertx.core.net.impl.clientconnection.ConnectResult java.util.List
StackMap stack:
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.connectionAdded:Ljava/util/function/Consumer;
aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.connection:Ljava/lang/Object;
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
25: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 28
StackMap locals: io.vertx.core.net.impl.clientconnection.Pool io.vertx.core.net.impl.clientconnection.Pool$Holder io.vertx.core.net.impl.clientconnection.ConnectResult java.util.List top java.util.Iterator
StackMap stack:
26: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.vertx.core.net.impl.clientconnection.Pool$Waiter
astore 4
start local 4 27: aload 4
getfield io.vertx.core.net.impl.clientconnection.Pool$Waiter.handler:Lio/vertx/core/Handler;
aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.connection:Ljava/lang/Object;
invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
end local 4 28: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 26
29: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
0 30 1 holder Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;
0 30 2 result Lio/vertx/core/net/impl/clientconnection/ConnectResult<TC;>;
12 22 3 waiters Ljava/util/List<Lio/vertx/core/net/impl/clientconnection/Pool$Waiter<TC;>;>;
24 30 3 waiters Ljava/util/List<Lio/vertx/core/net/impl/clientconnection/Pool$Waiter<TC;>;>;
27 28 4 waiter Lio/vertx/core/net/impl/clientconnection/Pool$Waiter<TC;>;
Exception table:
from to target type
2 7 22 any
8 21 22 any
22 23 22 any
Signature: (Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;Lio/vertx/core/net/impl/clientconnection/ConnectResult<TC;>;)V
MethodParameters:
Name Flags
holder
result
private void connectFailed(io.vertx.core.net.impl.clientconnection.Pool<C>.Holder, java.lang.Throwable);
descriptor: (Lio/vertx/core/net/impl/clientconnection/Pool$Holder;Ljava/lang/Throwable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
dup
astore 4
monitorenter
1: aload 0
dup
getfield io.vertx.core.net.impl.clientconnection.Pool.connecting:J
lconst_1
lsub
putfield io.vertx.core.net.impl.clientconnection.Pool.connecting:J
2: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.poll:()Ljava/lang/Object;
checkcast io.vertx.core.net.impl.clientconnection.Pool$Waiter
astore 3
start local 3 3: aload 0
dup
getfield io.vertx.core.net.impl.clientconnection.Pool.weight:J
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.initialWeight:J
lsub
putfield io.vertx.core.net.impl.clientconnection.Pool.weight:J
4: aload 1
iconst_1
putfield io.vertx.core.net.impl.clientconnection.Pool$Holder.removed:Z
5: aload 0
invokevirtual io.vertx.core.net.impl.clientconnection.Pool.checkProgress:()V
6: aload 4
monitorexit
7: goto 10
end local 3 StackMap locals: io.vertx.core.net.impl.clientconnection.Pool io.vertx.core.net.impl.clientconnection.Pool$Holder java.lang.Throwable top io.vertx.core.net.impl.clientconnection.Pool
StackMap stack: java.lang.Throwable
8: aload 4
monitorexit
9: athrow
start local 3 10: StackMap locals: io.vertx.core.net.impl.clientconnection.Pool io.vertx.core.net.impl.clientconnection.Pool$Holder java.lang.Throwable io.vertx.core.net.impl.clientconnection.Pool$Waiter
StackMap stack:
aload 3
ifnull 12
11: aload 3
getfield io.vertx.core.net.impl.clientconnection.Pool$Waiter.handler:Lio/vertx/core/Handler;
aload 2
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
0 13 1 holder Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;
0 13 2 cause Ljava/lang/Throwable;
3 8 3 waiter Lio/vertx/core/net/impl/clientconnection/Pool$Waiter<TC;>;
10 13 3 waiter Lio/vertx/core/net/impl/clientconnection/Pool$Waiter<TC;>;
Exception table:
from to target type
1 7 8 any
8 9 8 any
Signature: (Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;Ljava/lang/Throwable;)V
MethodParameters:
Name Flags
holder
cause
private synchronized void setConcurrency(io.vertx.core.net.impl.clientconnection.Pool<C>.Holder, );
descriptor: (Lio/vertx/core/net/impl/clientconnection/Pool$Holder;J)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: lload 2
lconst_0
lcmp
ifge 2
1: new java.lang.IllegalArgumentException
dup
ldc "Cannot set a negative concurrency value"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.removed:Z
ifeq 5
3: getstatic io.vertx.core.net.impl.clientconnection.Pool.$assertionsDisabled:Z
ifne 4
new java.lang.AssertionError
dup
ldc "Cannot recycle removed holder"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
4: StackMap locals:
StackMap stack:
return
5: StackMap locals:
StackMap stack:
aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.concurrency:J
lload 2
lcmp
ifge 14
6: lload 2
aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.concurrency:J
lsub
lstore 4
start local 4 7: aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
lconst_0
lcmp
ifne 9
8: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.available:Ljava/util/Deque;
aload 1
invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
pop
9: StackMap locals: long
StackMap stack:
aload 0
dup
getfield io.vertx.core.net.impl.clientconnection.Pool.capacity:J
lload 4
ladd
putfield io.vertx.core.net.impl.clientconnection.Pool.capacity:J
10: aload 1
dup
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
lload 4
ladd
putfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
11: aload 1
lload 2
putfield io.vertx.core.net.impl.clientconnection.Pool$Holder.concurrency:J
12: aload 0
invokevirtual io.vertx.core.net.impl.clientconnection.Pool.checkProgress:()V
end local 4 13: goto 16
StackMap locals:
StackMap stack:
14: aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.concurrency:J
lload 2
lcmp
ifle 16
15: new java.lang.UnsupportedOperationException
dup
ldc "Not yet implemented"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
0 17 1 holder Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;
0 17 2 concurrency J
7 13 4 diff J
Signature: (Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;J)V
MethodParameters:
Name Flags
holder
concurrency
private synchronized void recycle(io.vertx.core.net.impl.clientconnection.Pool<C>.Holder);
descriptor: (Lio/vertx/core/net/impl/clientconnection/Pool$Holder;)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.removed:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual io.vertx.core.net.impl.clientconnection.Pool.recycleConnection:(Lio/vertx/core/net/impl/clientconnection/Pool$Holder;)V
3: aload 0
invokevirtual io.vertx.core.net.impl.clientconnection.Pool.checkProgress:()V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
0 5 1 holder Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;
Signature: (Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;)V
MethodParameters:
Name Flags
holder
private synchronized void evicted(io.vertx.core.net.impl.clientconnection.Pool<C>.Holder);
descriptor: (Lio/vertx/core/net/impl/clientconnection/Pool$Holder;)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.removed:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
iconst_1
putfield io.vertx.core.net.impl.clientconnection.Pool$Holder.removed:Z
3: aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.initialized:Z
ifeq 6
4: aload 0
aload 1
invokevirtual io.vertx.core.net.impl.clientconnection.Pool.evictConnection:(Lio/vertx/core/net/impl/clientconnection/Pool$Holder;)V
5: aload 0
invokevirtual io.vertx.core.net.impl.clientconnection.Pool.checkProgress:()V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
0 7 1 holder Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;
Signature: (Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;)V
MethodParameters:
Name Flags
holder
private void evictConnection(io.vertx.core.net.impl.clientconnection.Pool<C>.Holder);
descriptor: (Lio/vertx/core/net/impl/clientconnection/Pool$Holder;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.connectionRemoved:Ljava/util/function/Consumer;
aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.connection:Ljava/lang/Object;
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
1: aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
lconst_0
lcmp
ifle 5
2: aload 0
dup
getfield io.vertx.core.net.impl.clientconnection.Pool.capacity:J
aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
lsub
putfield io.vertx.core.net.impl.clientconnection.Pool.capacity:J
3: aload 1
lconst_0
putfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
4: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.available:Ljava/util/Deque;
aload 1
invokeinterface java.util.Deque.remove:(Ljava/lang/Object;)Z
pop
5: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.vertx.core.net.impl.clientconnection.Pool.weight:J
aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.weight:J
lsub
putfield io.vertx.core.net.impl.clientconnection.Pool.weight:J
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
0 7 1 holder Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;
Signature: (Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;)V
MethodParameters:
Name Flags
holder
private void recycleConnection(io.vertx.core.net.impl.clientconnection.Pool<C>.Holder);
descriptor: (Lio/vertx/core/net/impl/clientconnection/Pool$Holder;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
lconst_1
ladd
lstore 2
start local 2 1: lload 2
aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.concurrency:J
lcmp
ifle 3
2: new java.lang.AssertionError
dup
ldc "Attempt to recycle a connection more than permitted"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals: long
StackMap stack:
aload 0
dup
getfield io.vertx.core.net.impl.clientconnection.Pool.capacity:J
lconst_1
ladd
putfield io.vertx.core.net.impl.clientconnection.Pool.capacity:J
4: aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
lconst_0
lcmp
ifne 9
5: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.fifo:Z
ifeq 8
6: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.available:Ljava/util/Deque;
aload 1
invokeinterface java.util.Deque.addLast:(Ljava/lang/Object;)V
7: goto 9
8: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.available:Ljava/util/Deque;
aload 1
invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
9: StackMap locals:
StackMap stack:
aload 1
dup
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
lconst_1
ladd
putfield io.vertx.core.net.impl.clientconnection.Pool$Holder.capacity:J
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
0 11 1 holder Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;
1 11 2 newCapacity J
Signature: (Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;)V
MethodParameters:
Name Flags
holder
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: aload 0
dup
astore 2
monitorenter
2: aload 1
ldc "Available:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.available:Ljava/util/Deque;
aload 1
invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/core/net/impl/clientconnection/Pool.lambda$6(Ljava/lang/StringBuilder;Lio/vertx/core/net/impl/clientconnection/Pool$Holder;)V (6)
(Lio/vertx/core/net/impl/clientconnection/Pool$Holder;)V
invokeinterface java.util.Deque.forEach:(Ljava/util/function/Consumer;)V
4: aload 1
ldc "Waiters"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.waitersQueue:Ljava/util/Deque;
aload 1
invokedynamic accept(Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/core/net/impl/clientconnection/Pool.lambda$7(Ljava/lang/StringBuilder;Lio/vertx/core/net/impl/clientconnection/Pool$Waiter;)V (6)
(Lio/vertx/core/net/impl/clientconnection/Pool$Waiter;)V
invokeinterface java.util.Deque.forEach:(Ljava/util/function/Consumer;)V
6: aload 1
ldc "InitialWeight:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.initialWeight:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: aload 1
ldc "MaxWeight:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.maxWeight:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: aload 1
ldc "Weight:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.weight:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 1
ldc "Capacity:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.capacity:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: aload 1
ldc "Connecting:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.connecting:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
11: aload 1
ldc "CheckInProgress:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.checkInProgress:Z
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 2
monitorexit
13: goto 16
StackMap locals: io.vertx.core.net.impl.clientconnection.Pool java.lang.StringBuilder io.vertx.core.net.impl.clientconnection.Pool
StackMap stack: java.lang.Throwable
14: aload 2
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
1 17 1 sb Ljava/lang/StringBuilder;
Exception table:
from to target type
2 13 14 any
14 15 14 any
private static void lambda$1(io.vertx.core.net.impl.clientconnection.Pool$Waiter, io.vertx.core.net.impl.clientconnection.Pool$Holder);
descriptor: (Lio/vertx/core/net/impl/clientconnection/Pool$Waiter;Lio/vertx/core/net/impl/clientconnection/Pool$Holder;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool$Waiter.handler:Lio/vertx/core/Handler;
aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.connection:Ljava/lang/Object;
invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
return
LocalVariableTable:
Start End Slot Name Signature
private void lambda$3(io.vertx.core.net.impl.clientconnection.Pool$Waiter);
descriptor: (Lio/vertx/core/net/impl/clientconnection/Pool$Waiter;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=2, args_size=2
start local 0 0: aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Waiter.handler:Lio/vertx/core/Handler;
new io.vertx.core.http.ConnectionPoolTooBusyException
dup
new java.lang.StringBuilder
dup
ldc "Connection pool reached max wait queue size of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.queueMaxSize:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial io.vertx.core.http.ConnectionPoolTooBusyException.<init>:(Ljava/lang/String;)V
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
private void lambda$4(java.util.List);
descriptor: (Ljava/util/List;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 1
aload 0
invokedynamic accept(Lio/vertx/core/net/impl/clientconnection/Pool;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/core/net/impl/clientconnection/Pool.lambda$5(Lio/vertx/core/net/impl/clientconnection/Pool$Holder;)V (7)
(Lio/vertx/core/net/impl/clientconnection/Pool$Holder;)V
invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
private static void lambda$6(java.lang.StringBuilder, io.vertx.core.net.impl.clientconnection.Pool$Holder);
descriptor: (Ljava/lang/StringBuilder;Lio/vertx/core/net/impl/clientconnection/Pool$Holder;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
1: return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 2 1 holder Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;
private static void lambda$7(java.lang.StringBuilder, io.vertx.core.net.impl.clientconnection.Pool$Waiter);
descriptor: (Ljava/lang/StringBuilder;Lio/vertx/core/net/impl/clientconnection/Pool$Waiter;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Waiter.handler:Lio/vertx/core/Handler;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
1: return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 2 1 w Lio/vertx/core/net/impl/clientconnection/Pool$Waiter<TC;>;
private void lambda$5(io.vertx.core.net.impl.clientconnection.Pool$Holder);
descriptor: (Lio/vertx/core/net/impl/clientconnection/Pool$Holder;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.core.net.impl.clientconnection.Pool.connector:Lio/vertx/core/net/impl/clientconnection/ConnectionProvider;
aload 1
getfield io.vertx.core.net.impl.clientconnection.Pool$Holder.connection:Ljava/lang/Object;
invokeinterface io.vertx.core.net.impl.clientconnection.ConnectionProvider.close:(Ljava/lang/Object;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/core/net/impl/clientconnection/Pool<TC;>;
0 2 1 holder Lio/vertx/core/net/impl/clientconnection/Pool<TC;>.Holder;
}
Signature: <C:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "Pool.java"
NestMembers:
io.vertx.core.net.impl.clientconnection.Pool$Holder io.vertx.core.net.impl.clientconnection.Pool$Waiter
InnerClasses:
private Holder = io.vertx.core.net.impl.clientconnection.Pool$Holder of io.vertx.core.net.impl.clientconnection.Pool
private final Waiter = io.vertx.core.net.impl.clientconnection.Pool$Waiter of io.vertx.core.net.impl.clientconnection.Pool
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles