public class io.vertx.core.http.impl.pool.Pool<C>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.vertx.core.http.impl.pool.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.http.impl.pool.ConnectionProvider<C> connector;
descriptor: Lio/vertx/core/http/impl/pool/ConnectionProvider;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/vertx/core/http/impl/pool/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 java.util.function.LongSupplier clock;
descriptor: Ljava/util/function/LongSupplier;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int queueMaxSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Deque<io.vertx.core.http.impl.pool.Waiter<C>> waitersQueue;
descriptor: Ljava/util/Deque;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Deque<Lio/vertx/core/http/impl/pool/Waiter<TC;>;>;
private final java.util.Deque<io.vertx.core.http.impl.pool.Pool<C>.Holder> available;
descriptor: Ljava/util/Deque;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Deque<Lio/vertx/core/http/impl/pool/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
private boolean closed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final io.vertx.core.Handler<java.lang.Void> poolClosed;
descriptor: Lio/vertx/core/Handler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/vertx/core/Handler<Ljava/lang/Void;>;
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/http/impl/pool/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.http.impl.pool.Pool.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(io.vertx.core.Context, io.vertx.core.http.impl.pool.ConnectionProvider<C>, java.util.function.LongSupplier, int, long, long, io.vertx.core.Handler<java.lang.Void>, java.util.function.Consumer<C>, java.util.function.Consumer<C>, );
descriptor: (Lio/vertx/core/Context;Lio/vertx/core/http/impl/pool/ConnectionProvider;Ljava/util/function/LongSupplier;IJJLio/vertx/core/Handler;Ljava/util/function/Consumer;Ljava/util/function/Consumer;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=13, args_size=11
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 7 start local 9 start local 10 start local 11 start local 12 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.http.impl.pool.Pool.waitersQueue:Ljava/util/Deque;
2: aload 0
aload 3
putfield io.vertx.core.http.impl.pool.Pool.clock:Ljava/util/function/LongSupplier;
3: aload 0
aload 1
checkcast io.vertx.core.impl.ContextInternal
putfield io.vertx.core.http.impl.pool.Pool.context:Lio/vertx/core/impl/ContextInternal;
4: aload 0
lload 7
putfield io.vertx.core.http.impl.pool.Pool.maxWeight:J
5: aload 0
lload 5
putfield io.vertx.core.http.impl.pool.Pool.initialWeight:J
6: aload 0
aload 2
putfield io.vertx.core.http.impl.pool.Pool.connector:Lio/vertx/core/http/impl/pool/ConnectionProvider;
7: aload 0
iload 4
putfield io.vertx.core.http.impl.pool.Pool.queueMaxSize:I
8: aload 0
aload 9
putfield io.vertx.core.http.impl.pool.Pool.poolClosed:Lio/vertx/core/Handler;
9: aload 0
new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
putfield io.vertx.core.http.impl.pool.Pool.available:Ljava/util/Deque;
10: aload 0
aload 10
putfield io.vertx.core.http.impl.pool.Pool.connectionAdded:Ljava/util/function/Consumer;
11: aload 0
aload 11
putfield io.vertx.core.http.impl.pool.Pool.connectionRemoved:Ljava/util/function/Consumer;
12: aload 0
iload 12
putfield io.vertx.core.http.impl.pool.Pool.fifo:Z
13: return
end local 12 end local 11 end local 10 end local 9 end local 7 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lio/vertx/core/http/impl/pool/Pool<TC;>;
0 14 1 context Lio/vertx/core/Context;
0 14 2 connector Lio/vertx/core/http/impl/pool/ConnectionProvider<TC;>;
0 14 3 clock Ljava/util/function/LongSupplier;
0 14 4 queueMaxSize I
0 14 5 initialWeight J
0 14 7 maxWeight J
0 14 9 poolClosed Lio/vertx/core/Handler<Ljava/lang/Void;>;
0 14 10 connectionAdded Ljava/util/function/Consumer<TC;>;
0 14 11 connectionRemoved Ljava/util/function/Consumer<TC;>;
0 14 12 fifo Z
Signature: (Lio/vertx/core/Context;Lio/vertx/core/http/impl/pool/ConnectionProvider<TC;>;Ljava/util/function/LongSupplier;IJJLio/vertx/core/Handler<Ljava/lang/Void;>;Ljava/util/function/Consumer<TC;>;Ljava/util/function/Consumer<TC;>;Z)V
MethodParameters:
Name Flags
context
connector
clock
queueMaxSize
initialWeight
maxWeight
poolClosed
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.http.impl.pool.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/http/impl/pool/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.http.impl.pool.Pool.weight:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/core/http/impl/pool/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.http.impl.pool.Pool.capacity:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/core/http/impl/pool/Pool<TC;>;
public synchronized boolean getConnection(io.vertx.core.Handler<io.vertx.core.AsyncResult<C>>);
descriptor: (Lio/vertx/core/Handler;)Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.core.http.impl.pool.Pool.closed:Z
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
new io.vertx.core.http.impl.pool.Waiter
dup
aload 1
invokespecial io.vertx.core.http.impl.pool.Waiter.<init>:(Lio/vertx/core/Handler;)V
astore 2
start local 2 3: aload 0
getfield io.vertx.core.http.impl.pool.Pool.waitersQueue:Ljava/util/Deque;
aload 2
invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
pop
4: aload 0
invokevirtual io.vertx.core.http.impl.pool.Pool.checkProgress:()V
5: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/vertx/core/http/impl/pool/Pool<TC;>;
0 6 1 handler Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TC;>;>;
3 6 2 waiter Lio/vertx/core/http/impl/pool/Waiter<TC;>;
Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TC;>;>;)Z
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.http.impl.pool.Pool.checkProgress:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/core/http/impl/pool/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.http.impl.pool.Pool.checkInProgress:Z
ifne 3
aload 0
invokevirtual io.vertx.core.http.impl.pool.Pool.canProgress:()Z
ifne 1
aload 0
invokevirtual io.vertx.core.http.impl.pool.Pool.canClose:()Z
ifeq 3
1: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.vertx.core.http.impl.pool.Pool.checkInProgress:Z
2: aload 0
getfield io.vertx.core.http.impl.pool.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/http/impl/pool/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/http/impl/pool/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/http/impl/pool/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.http.impl.pool.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.size:()I
ifle 3
1: aload 0
invokevirtual io.vertx.core.http.impl.pool.Pool.canAcquireConnection:()Z
ifne 2
aload 0
invokevirtual io.vertx.core.http.impl.pool.Pool.needToCreateConnection:()Z
ifne 2
aload 0
invokevirtual io.vertx.core.http.impl.pool.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.http.impl.pool.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/http/impl/pool/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.http.impl.pool.Pool.nextTask:()Ljava/lang/Runnable;
astore 1
start local 1 2: aload 1
ifnonnull 7
3: aload 0
iconst_0
putfield io.vertx.core.http.impl.pool.Pool.checkInProgress:Z
4: aload 0
invokevirtual io.vertx.core.http.impl.pool.Pool.checkClose:()V
5: aload 2
monitorexit
6: goto 13
7: StackMap locals: java.lang.Runnable io.vertx.core.http.impl.pool.Pool
StackMap stack:
aload 2
monitorexit
8: goto 11
end local 1 StackMap locals: io.vertx.core.http.impl.pool.Pool top io.vertx.core.http.impl.pool.Pool
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
start local 1 11: StackMap locals: io.vertx.core.http.impl.pool.Pool java.lang.Runnable
StackMap stack:
aload 1
invokeinterface java.lang.Runnable.run:()V
end local 1 12: goto 0
13: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lio/vertx/core/http/impl/pool/Pool<TC;>;
2 9 1 task Ljava/lang/Runnable;
11 12 1 task Ljava/lang/Runnable;
Exception table:
from to target type
1 6 9 any
7 8 9 any
9 10 9 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.http.impl.pool.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/http/impl/pool/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.http.impl.pool.Pool.weight:J
aload 0
getfield io.vertx.core.http.impl.pool.Pool.maxWeight:J
lcmp
ifge 1
aload 0
getfield io.vertx.core.http.impl.pool.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.size:()I
i2l
aload 0
getfield io.vertx.core.http.impl.pool.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/http/impl/pool/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.http.impl.pool.Pool.queueMaxSize:I
iflt 1
aload 0
getfield io.vertx.core.http.impl.pool.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.size:()I
i2l
aload 0
getfield io.vertx.core.http.impl.pool.Pool.connecting:J
lsub
aload 0
getfield io.vertx.core.http.impl.pool.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/http/impl/pool/Pool<TC;>;
private java.lang.Runnable nextTask();
descriptor: ()Ljava/lang/Runnable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=1
start local 0 0: aload 0
getfield io.vertx.core.http.impl.pool.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.size:()I
ifle 17
1: aload 0
invokevirtual io.vertx.core.http.impl.pool.Pool.canAcquireConnection:()Z
ifeq 9
2: aload 0
getfield io.vertx.core.http.impl.pool.Pool.available:Ljava/util/Deque;
invokeinterface java.util.Deque.peek:()Ljava/lang/Object;
checkcast io.vertx.core.http.impl.pool.Pool$Holder
astore 1
start local 1 3: aload 0
dup
getfield io.vertx.core.http.impl.pool.Pool.capacity:J
lconst_1
lsub
putfield io.vertx.core.http.impl.pool.Pool.capacity:J
4: aload 1
dup
getfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
lconst_1
lsub
dup2_x1
putfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
lconst_0
lcmp
ifne 7
5: aload 1
ldc -1
putfield io.vertx.core.http.impl.pool.Pool$Holder.expirationTimestamp:J
6: aload 0
getfield io.vertx.core.http.impl.pool.Pool.available:Ljava/util/Deque;
invokeinterface java.util.Deque.poll:()Ljava/lang/Object;
pop
7: StackMap locals: io.vertx.core.http.impl.pool.Pool$Holder
StackMap stack:
aload 0
getfield io.vertx.core.http.impl.pool.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.poll:()Ljava/lang/Object;
checkcast io.vertx.core.http.impl.pool.Waiter
astore 2
start local 2 8: aload 2
aload 1
invokedynamic run(Lio/vertx/core/http/impl/pool/Waiter;Lio/vertx/core/http/impl/pool/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/http/impl/pool/Pool.lambda$1(Lio/vertx/core/http/impl/pool/Waiter;Lio/vertx/core/http/impl/pool/Pool$Holder;)V (6)
()V
areturn
end local 2 end local 1 9: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.vertx.core.http.impl.pool.Pool.needToCreateConnection:()Z
ifeq 14
10: aload 0
dup
getfield io.vertx.core.http.impl.pool.Pool.connecting:J
lconst_1
ladd
putfield io.vertx.core.http.impl.pool.Pool.connecting:J
11: aload 0
dup
getfield io.vertx.core.http.impl.pool.Pool.weight:J
aload 0
getfield io.vertx.core.http.impl.pool.Pool.initialWeight:J
ladd
putfield io.vertx.core.http.impl.pool.Pool.weight:J
12: new io.vertx.core.http.impl.pool.Pool$Holder
dup
aload 0
invokespecial io.vertx.core.http.impl.pool.Pool$Holder.<init>:(Lio/vertx/core/http/impl/pool/Pool;)V
astore 1
start local 1 13: aload 1
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic run(Lio/vertx/core/http/impl/pool/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/http/impl/pool/Pool$Holder.connect()V (5)
()V
areturn
end local 1 14: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.vertx.core.http.impl.pool.Pool.canEvictWaiter:()Z
ifeq 36
15: aload 0
getfield io.vertx.core.http.impl.pool.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.removeLast:()Ljava/lang/Object;
checkcast io.vertx.core.http.impl.pool.Waiter
astore 1
start local 1 16: aload 0
aload 1
invokedynamic run(Lio/vertx/core/http/impl/pool/Pool;Lio/vertx/core/http/impl/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/http/impl/pool/Pool.lambda$3(Lio/vertx/core/http/impl/pool/Waiter;)V (7)
()V
areturn
end local 1 17: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.core.http.impl.pool.Pool.capacity:J
lconst_0
lcmp
ifle 36
18: aload 0
getfield io.vertx.core.http.impl.pool.Pool.clock:Ljava/util/function/LongSupplier;
invokeinterface java.util.function.LongSupplier.getAsLong:()J
lstore 1
start local 1 19: aconst_null
astore 3
start local 3 20: aload 0
getfield io.vertx.core.http.impl.pool.Pool.available:Ljava/util/Deque;
invokeinterface java.util.Deque.iterator:()Ljava/util/Iterator;
astore 4
start local 4 21: goto 32
22: StackMap locals: long java.util.List java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.vertx.core.http.impl.pool.Pool$Holder
astore 5
start local 5 23: aload 5
getfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
aload 5
getfield io.vertx.core.http.impl.pool.Pool$Holder.concurrency:J
lcmp
ifne 32
aload 5
getfield io.vertx.core.http.impl.pool.Pool$Holder.expirationTimestamp:J
lconst_0
lcmp
ifeq 24
lload 1
aload 5
getfield io.vertx.core.http.impl.pool.Pool$Holder.expirationTimestamp:J
lcmp
iflt 32
24: StackMap locals: io.vertx.core.http.impl.pool.Pool$Holder
StackMap stack:
aload 4
invokeinterface java.util.Iterator.remove:()V
25: aload 5
getfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
lconst_0
lcmp
ifle 27
26: aload 0
dup
getfield io.vertx.core.http.impl.pool.Pool.capacity:J
aload 5
getfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
lsub
putfield io.vertx.core.http.impl.pool.Pool.capacity:J
27: StackMap locals:
StackMap stack:
aload 5
ldc -1
putfield io.vertx.core.http.impl.pool.Pool$Holder.expirationTimestamp:J
28: aload 5
lconst_0
putfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
29: aload 3
ifnonnull 31
30: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
31: StackMap locals:
StackMap stack:
aload 3
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 32: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 22
end local 4 33: aload 3
ifnull 36
34: aload 3
astore 4
start local 4 35: aload 0
aload 4
invokedynamic run(Lio/vertx/core/http/impl/pool/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/http/impl/pool/Pool.lambda$4(Ljava/util/List;)V (7)
()V
areturn
end local 4 end local 3 end local 1 36: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lio/vertx/core/http/impl/pool/Pool<TC;>;
3 9 1 conn Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;
8 9 2 waiter Lio/vertx/core/http/impl/pool/Waiter<TC;>;
13 14 1 holder Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;
16 17 1 waiter Lio/vertx/core/http/impl/pool/Waiter<TC;>;
19 36 1 now J
20 36 3 expired Ljava/util/List<Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;>;
21 33 4 it Ljava/util/Iterator<Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;>;
23 32 5 holder Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;
35 36 4 toClose Ljava/util/List<Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;>;
private boolean canClose();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.core.http.impl.pool.Pool.weight:J
lconst_0
lcmp
ifne 1
aload 0
getfield io.vertx.core.http.impl.pool.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.isEmpty:()Z
ifeq 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/http/impl/pool/Pool<TC;>;
private void checkClose();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual io.vertx.core.http.impl.pool.Pool.canClose:()Z
ifeq 3
1: aload 0
iconst_1
putfield io.vertx.core.http.impl.pool.Pool.closed:Z
2: aload 0
getfield io.vertx.core.http.impl.pool.Pool.poolClosed:Lio/vertx/core/Handler;
aconst_null
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/vertx/core/http/impl/pool/Pool<TC;>;
private void connectSucceeded(io.vertx.core.http.impl.pool.Pool<C>.Holder, io.vertx.core.http.impl.pool.ConnectResult<C>);
descriptor: (Lio/vertx/core/http/impl/pool/Pool$Holder;Lio/vertx/core/http/impl/pool/ConnectResult;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=6, 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.http.impl.pool.Pool.connecting:J
lconst_1
lsub
putfield io.vertx.core.http.impl.pool.Pool.connecting:J
2: aload 0
dup
getfield io.vertx.core.http.impl.pool.Pool.weight:J
aload 0
getfield io.vertx.core.http.impl.pool.Pool.initialWeight:J
aload 2
invokevirtual io.vertx.core.http.impl.pool.ConnectResult.weight:()J
lsub
ladd
putfield io.vertx.core.http.impl.pool.Pool.weight:J
3: aload 1
aload 2
invokevirtual io.vertx.core.http.impl.pool.ConnectResult.concurrency:()J
aload 2
invokevirtual io.vertx.core.http.impl.pool.ConnectResult.connection:()Ljava/lang/Object;
aload 2
invokevirtual io.vertx.core.http.impl.pool.ConnectResult.weight:()J
invokevirtual io.vertx.core.http.impl.pool.Pool$Holder.init:(JLjava/lang/Object;J)V
4: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 5: goto 8
6: StackMap locals: java.util.List io.vertx.core.http.impl.pool.Pool
StackMap stack:
aload 3
aload 0
getfield io.vertx.core.http.impl.pool.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.poll:()Ljava/lang/Object;
checkcast io.vertx.core.http.impl.pool.Waiter
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: aload 1
dup
getfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
lconst_1
lsub
putfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
8: StackMap locals:
StackMap stack:
aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
lconst_0
lcmp
ifle 9
aload 0
getfield io.vertx.core.http.impl.pool.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.size:()I
ifgt 6
9: StackMap locals:
StackMap stack:
aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
lconst_0
lcmp
ifle 12
10: aload 0
getfield io.vertx.core.http.impl.pool.Pool.available:Ljava/util/Deque;
aload 1
invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
pop
11: aload 0
dup
getfield io.vertx.core.http.impl.pool.Pool.capacity:J
aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
ladd
putfield io.vertx.core.http.impl.pool.Pool.capacity:J
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.vertx.core.http.impl.pool.Pool.checkProgress:()V
13: aload 4
monitorexit
14: goto 17
end local 3 StackMap locals: io.vertx.core.http.impl.pool.Pool io.vertx.core.http.impl.pool.Pool$Holder io.vertx.core.http.impl.pool.ConnectResult top io.vertx.core.http.impl.pool.Pool
StackMap stack: java.lang.Throwable
15: aload 4
monitorexit
16: athrow
start local 3 17: StackMap locals: io.vertx.core.http.impl.pool.Pool io.vertx.core.http.impl.pool.Pool$Holder io.vertx.core.http.impl.pool.ConnectResult java.util.List
StackMap stack:
aload 0
getfield io.vertx.core.http.impl.pool.Pool.connectionAdded:Ljava/util/function/Consumer;
aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.connection:Ljava/lang/Object;
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
18: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 21
StackMap locals: io.vertx.core.http.impl.pool.Pool io.vertx.core.http.impl.pool.Pool$Holder io.vertx.core.http.impl.pool.ConnectResult java.util.List top java.util.Iterator
StackMap stack:
19: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.vertx.core.http.impl.pool.Waiter
astore 4
start local 4 20: aload 4
getfield io.vertx.core.http.impl.pool.Waiter.handler:Lio/vertx/core/Handler;
aload 1
getfield io.vertx.core.http.impl.pool.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 21: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
22: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lio/vertx/core/http/impl/pool/Pool<TC;>;
0 23 1 holder Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;
0 23 2 result Lio/vertx/core/http/impl/pool/ConnectResult<TC;>;
5 15 3 waiters Ljava/util/List<Lio/vertx/core/http/impl/pool/Waiter<TC;>;>;
17 23 3 waiters Ljava/util/List<Lio/vertx/core/http/impl/pool/Waiter<TC;>;>;
20 21 4 waiter Lio/vertx/core/http/impl/pool/Waiter<TC;>;
Exception table:
from to target type
1 14 15 any
15 16 15 any
Signature: (Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;Lio/vertx/core/http/impl/pool/ConnectResult<TC;>;)V
MethodParameters:
Name Flags
holder
result
private void connectFailed(io.vertx.core.http.impl.pool.Pool<C>.Holder, java.lang.Throwable);
descriptor: (Lio/vertx/core/http/impl/pool/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.http.impl.pool.Pool.connecting:J
lconst_1
lsub
putfield io.vertx.core.http.impl.pool.Pool.connecting:J
2: aload 0
getfield io.vertx.core.http.impl.pool.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.poll:()Ljava/lang/Object;
checkcast io.vertx.core.http.impl.pool.Waiter
astore 3
start local 3 3: aload 0
dup
getfield io.vertx.core.http.impl.pool.Pool.weight:J
aload 0
getfield io.vertx.core.http.impl.pool.Pool.initialWeight:J
lsub
putfield io.vertx.core.http.impl.pool.Pool.weight:J
4: aload 1
iconst_1
putfield io.vertx.core.http.impl.pool.Pool$Holder.removed:Z
5: aload 0
invokevirtual io.vertx.core.http.impl.pool.Pool.checkProgress:()V
6: aload 4
monitorexit
7: goto 10
end local 3 StackMap locals: io.vertx.core.http.impl.pool.Pool io.vertx.core.http.impl.pool.Pool$Holder java.lang.Throwable top io.vertx.core.http.impl.pool.Pool
StackMap stack: java.lang.Throwable
8: aload 4
monitorexit
9: athrow
start local 3 10: StackMap locals: io.vertx.core.http.impl.pool.Pool io.vertx.core.http.impl.pool.Pool$Holder java.lang.Throwable io.vertx.core.http.impl.pool.Waiter
StackMap stack:
aload 3
ifnull 12
11: aload 3
getfield io.vertx.core.http.impl.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/http/impl/pool/Pool<TC;>;
0 13 1 holder Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;
0 13 2 cause Ljava/lang/Throwable;
3 8 3 waiter Lio/vertx/core/http/impl/pool/Waiter<TC;>;
10 13 3 waiter Lio/vertx/core/http/impl/pool/Waiter<TC;>;
Exception table:
from to target type
1 7 8 any
8 9 8 any
Signature: (Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;Ljava/lang/Throwable;)V
MethodParameters:
Name Flags
holder
cause
private synchronized void setConcurrency(io.vertx.core.http.impl.pool.Pool<C>.Holder, );
descriptor: (Lio/vertx/core/http/impl/pool/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.http.impl.pool.Pool$Holder.removed:Z
ifeq 5
3: getstatic io.vertx.core.http.impl.pool.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.http.impl.pool.Pool$Holder.concurrency:J
lload 2
lcmp
ifge 14
6: lload 2
aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.concurrency:J
lsub
lstore 4
start local 4 7: aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
lconst_0
lcmp
ifne 9
8: aload 0
getfield io.vertx.core.http.impl.pool.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.http.impl.pool.Pool.capacity:J
lload 4
ladd
putfield io.vertx.core.http.impl.pool.Pool.capacity:J
10: aload 1
dup
getfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
lload 4
ladd
putfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
11: aload 1
lload 2
putfield io.vertx.core.http.impl.pool.Pool$Holder.concurrency:J
12: aload 0
invokevirtual io.vertx.core.http.impl.pool.Pool.checkProgress:()V
end local 4 13: goto 16
StackMap locals:
StackMap stack:
14: aload 1
getfield io.vertx.core.http.impl.pool.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/http/impl/pool/Pool<TC;>;
0 17 1 holder Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;
0 17 2 concurrency J
7 13 4 diff J
Signature: (Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;J)V
MethodParameters:
Name Flags
holder
concurrency
private void recycle(io.vertx.core.http.impl.pool.Pool<C>.Holder, );
descriptor: (Lio/vertx/core/http/impl/pool/Pool$Holder;J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, 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 "Invalid timestamp"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.removed:Z
ifeq 4
3: return
4: StackMap locals:
StackMap stack:
aload 0
dup
astore 5
monitorenter
5: aload 0
aload 1
lload 2
invokevirtual io.vertx.core.http.impl.pool.Pool.recycleConnection:(Lio/vertx/core/http/impl/pool/Pool$Holder;J)Z
ifeq 8
6: aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.connection:Ljava/lang/Object;
astore 4
start local 4 7: goto 9
end local 4 8: StackMap locals: io.vertx.core.http.impl.pool.Pool io.vertx.core.http.impl.pool.Pool$Holder long top io.vertx.core.http.impl.pool.Pool
StackMap stack:
aconst_null
astore 4
start local 4 9: StackMap locals: io.vertx.core.http.impl.pool.Pool io.vertx.core.http.impl.pool.Pool$Holder long java.lang.Object io.vertx.core.http.impl.pool.Pool
StackMap stack:
aload 5
monitorexit
10: goto 13
end local 4 StackMap locals: io.vertx.core.http.impl.pool.Pool io.vertx.core.http.impl.pool.Pool$Holder long top io.vertx.core.http.impl.pool.Pool
StackMap stack: java.lang.Throwable
11: aload 5
monitorexit
12: athrow
start local 4 13: StackMap locals: io.vertx.core.http.impl.pool.Pool io.vertx.core.http.impl.pool.Pool$Holder long java.lang.Object
StackMap stack:
aload 4
ifnull 16
14: aload 0
getfield io.vertx.core.http.impl.pool.Pool.connector:Lio/vertx/core/http/impl/pool/ConnectionProvider;
aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.connection:Ljava/lang/Object;
invokeinterface io.vertx.core.http.impl.pool.ConnectionProvider.close:(Ljava/lang/Object;)V
15: goto 22
16: StackMap locals:
StackMap stack:
aload 0
dup
astore 5
monitorenter
17: aload 0
invokevirtual io.vertx.core.http.impl.pool.Pool.checkProgress:()V
18: aload 5
monitorexit
19: goto 22
StackMap locals: io.vertx.core.http.impl.pool.Pool io.vertx.core.http.impl.pool.Pool$Holder long java.lang.Object io.vertx.core.http.impl.pool.Pool
StackMap stack: java.lang.Throwable
20: aload 5
monitorexit
21: athrow
22: StackMap locals:
StackMap stack:
return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lio/vertx/core/http/impl/pool/Pool<TC;>;
0 23 1 holder Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;
0 23 2 timestamp J
7 8 4 toClose TC;
9 11 4 toClose TC;
13 23 4 toClose TC;
Exception table:
from to target type
5 10 11 any
11 12 11 any
17 19 20 any
20 21 20 any
Signature: (Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;J)V
MethodParameters:
Name Flags
holder
timestamp
private synchronized void evicted(io.vertx.core.http.impl.pool.Pool<C>.Holder);
descriptor: (Lio/vertx/core/http/impl/pool/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.http.impl.pool.Pool$Holder.removed:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual io.vertx.core.http.impl.pool.Pool.evictConnection:(Lio/vertx/core/http/impl/pool/Pool$Holder;)V
3: aload 0
invokevirtual io.vertx.core.http.impl.pool.Pool.checkProgress:()V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/vertx/core/http/impl/pool/Pool<TC;>;
0 5 1 holder Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;
Signature: (Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;)V
MethodParameters:
Name Flags
holder
private void evictConnection(io.vertx.core.http.impl.pool.Pool<C>.Holder);
descriptor: (Lio/vertx/core/http/impl/pool/Pool$Holder;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
iconst_1
putfield io.vertx.core.http.impl.pool.Pool$Holder.removed:Z
1: aload 0
getfield io.vertx.core.http.impl.pool.Pool.connectionRemoved:Ljava/util/function/Consumer;
aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.connection:Ljava/lang/Object;
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
2: aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
lconst_0
lcmp
ifle 6
3: aload 0
dup
getfield io.vertx.core.http.impl.pool.Pool.capacity:J
aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
lsub
putfield io.vertx.core.http.impl.pool.Pool.capacity:J
4: aload 0
getfield io.vertx.core.http.impl.pool.Pool.available:Ljava/util/Deque;
aload 1
invokeinterface java.util.Deque.remove:(Ljava/lang/Object;)Z
pop
5: aload 1
lconst_0
putfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
6: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.vertx.core.http.impl.pool.Pool.weight:J
aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.weight:J
lsub
putfield io.vertx.core.http.impl.pool.Pool.weight:J
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/vertx/core/http/impl/pool/Pool<TC;>;
0 8 1 holder Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;
Signature: (Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;)V
MethodParameters:
Name Flags
holder
private boolean recycleConnection(io.vertx.core.http.impl.pool.Pool<C>.Holder, );
descriptor: (Lio/vertx/core/http/impl/pool/Pool$Holder;J)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
lconst_1
ladd
lstore 4
start local 4 1: lload 4
aload 1
getfield io.vertx.core.http.impl.pool.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:
lload 2
lconst_0
lcmp
ifne 10
lload 4
aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.concurrency:J
lcmp
ifne 10
aload 0
getfield io.vertx.core.http.impl.pool.Pool.capacity:J
aload 0
getfield io.vertx.core.http.impl.pool.Pool.waitersQueue:Ljava/util/Deque;
invokeinterface java.util.Deque.size:()I
i2l
lcmp
iflt 10
4: aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
lconst_0
lcmp
ifle 7
5: aload 0
dup
getfield io.vertx.core.http.impl.pool.Pool.capacity:J
aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
lsub
putfield io.vertx.core.http.impl.pool.Pool.capacity:J
6: aload 0
getfield io.vertx.core.http.impl.pool.Pool.available:Ljava/util/Deque;
aload 1
invokeinterface java.util.Deque.remove:(Ljava/lang/Object;)Z
pop
7: StackMap locals:
StackMap stack:
aload 1
ldc -1
putfield io.vertx.core.http.impl.pool.Pool$Holder.expirationTimestamp:J
8: aload 1
lconst_0
putfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
9: iconst_1
ireturn
10: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.vertx.core.http.impl.pool.Pool.capacity:J
lconst_1
ladd
putfield io.vertx.core.http.impl.pool.Pool.capacity:J
11: aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
lconst_0
lcmp
ifne 16
12: aload 0
getfield io.vertx.core.http.impl.pool.Pool.fifo:Z
ifeq 15
13: aload 0
getfield io.vertx.core.http.impl.pool.Pool.available:Ljava/util/Deque;
aload 1
invokeinterface java.util.Deque.addLast:(Ljava/lang/Object;)V
14: goto 16
15: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.core.http.impl.pool.Pool.available:Ljava/util/Deque;
aload 1
invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
16: StackMap locals:
StackMap stack:
aload 1
lload 2
putfield io.vertx.core.http.impl.pool.Pool$Holder.expirationTimestamp:J
17: aload 1
dup
getfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
lconst_1
ladd
putfield io.vertx.core.http.impl.pool.Pool$Holder.capacity:J
18: iconst_0
ireturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lio/vertx/core/http/impl/pool/Pool<TC;>;
0 19 1 holder Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;
0 19 2 timestamp J
1 19 4 newCapacity J
Signature: (Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;J)Z
MethodParameters:
Name Flags
holder
timestamp
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.http.impl.pool.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/http/impl/pool/Pool.lambda$6(Ljava/lang/StringBuilder;Lio/vertx/core/http/impl/pool/Pool$Holder;)V (6)
(Lio/vertx/core/http/impl/pool/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.http.impl.pool.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/http/impl/pool/Pool.lambda$7(Ljava/lang/StringBuilder;Lio/vertx/core/http/impl/pool/Waiter;)V (6)
(Lio/vertx/core/http/impl/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.http.impl.pool.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.http.impl.pool.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.http.impl.pool.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.http.impl.pool.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.http.impl.pool.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.http.impl.pool.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 1
ldc "Closed:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.vertx.core.http.impl.pool.Pool.closed: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
13: aload 2
monitorexit
14: goto 17
StackMap locals: io.vertx.core.http.impl.pool.Pool java.lang.StringBuilder io.vertx.core.http.impl.pool.Pool
StackMap stack: java.lang.Throwable
15: aload 2
monitorexit
16: athrow
17: 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 18 0 this Lio/vertx/core/http/impl/pool/Pool<TC;>;
1 18 1 sb Ljava/lang/StringBuilder;
Exception table:
from to target type
2 14 15 any
15 16 15 any
private static void lambda$1(io.vertx.core.http.impl.pool.Waiter, io.vertx.core.http.impl.pool.Pool$Holder);
descriptor: (Lio/vertx/core/http/impl/pool/Waiter;Lio/vertx/core/http/impl/pool/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.http.impl.pool.Waiter.handler:Lio/vertx/core/Handler;
aload 1
getfield io.vertx.core.http.impl.pool.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.http.impl.pool.Waiter);
descriptor: (Lio/vertx/core/http/impl/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.http.impl.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.http.impl.pool.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/http/impl/pool/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/http/impl/pool/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/http/impl/pool/Pool.lambda$5(Lio/vertx/core/http/impl/pool/Pool$Holder;)V (7)
(Lio/vertx/core/http/impl/pool/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/http/impl/pool/Pool<TC;>;
private static void lambda$6(java.lang.StringBuilder, io.vertx.core.http.impl.pool.Pool$Holder);
descriptor: (Ljava/lang/StringBuilder;Lio/vertx/core/http/impl/pool/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/http/impl/pool/Pool<TC;>.Holder;
private static void lambda$7(java.lang.StringBuilder, io.vertx.core.http.impl.pool.Waiter);
descriptor: (Ljava/lang/StringBuilder;Lio/vertx/core/http/impl/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.http.impl.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/http/impl/pool/Waiter<TC;>;
private void lambda$5(io.vertx.core.http.impl.pool.Pool$Holder);
descriptor: (Lio/vertx/core/http/impl/pool/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.http.impl.pool.Pool.connector:Lio/vertx/core/http/impl/pool/ConnectionProvider;
aload 1
getfield io.vertx.core.http.impl.pool.Pool$Holder.connection:Ljava/lang/Object;
invokeinterface io.vertx.core.http.impl.pool.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/http/impl/pool/Pool<TC;>;
0 2 1 holder Lio/vertx/core/http/impl/pool/Pool<TC;>.Holder;
}
Signature: <C:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "Pool.java"
NestMembers:
io.vertx.core.http.impl.pool.Pool$Holder
InnerClasses:
public Holder = io.vertx.core.http.impl.pool.Pool$Holder of io.vertx.core.http.impl.pool.Pool
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles