final class org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote implements java.io.Closeable
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote
super_class: java.lang.Object
{
private final java.lang.String _ip;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int _limit;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.eclipse.jetty.util.thread.Locker _locker;
descriptor: Lorg/eclipse/jetty/util/thread/Locker;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int _permits;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.util.Deque<java.util.concurrent.CompletableFuture<java.io.Closeable>> _queue;
descriptor: Ljava/util/Deque;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Deque<Ljava/util/concurrent/CompletableFuture<Ljava/io/Closeable;>;>;
private final java.util.concurrent.CompletableFuture<java.io.Closeable> _permitted;
descriptor: Ljava/util/concurrent/CompletableFuture;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/CompletableFuture<Ljava/io/Closeable;>;
final org.eclipse.jetty.server.handler.ThreadLimitHandler this$0;
descriptor: Lorg/eclipse/jetty/server/handler/ThreadLimitHandler;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(org.eclipse.jetty.server.handler.ThreadLimitHandler, java.lang.String, int);
descriptor: (Lorg/eclipse/jetty/server/handler/ThreadLimitHandler;Ljava/lang/String;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 2 start local 3 0: aload 0
aload 1
putfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote.this$0:Lorg/eclipse/jetty/server/handler/ThreadLimitHandler;
1: aload 0
invokespecial java.lang.Object.<init>:()V
2: aload 0
new org.eclipse.jetty.util.thread.Locker
dup
invokespecial org.eclipse.jetty.util.thread.Locker.<init>:()V
putfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._locker:Lorg/eclipse/jetty/util/thread/Locker;
3: aload 0
new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
putfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._queue:Ljava/util/Deque;
4: aload 0
aload 0
invokestatic java.util.concurrent.CompletableFuture.completedFuture:(Ljava/lang/Object;)Ljava/util/concurrent/CompletableFuture;
putfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._permitted:Ljava/util/concurrent/CompletableFuture;
5: aload 0
aload 2
putfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._ip:Ljava/lang/String;
6: aload 0
iload 3
putfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._limit:I
7: return
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/eclipse/jetty/server/handler/ThreadLimitHandler$Remote;
0 8 2 ip Ljava/lang/String;
0 8 3 limit I
MethodParameters:
Name Flags
this$0 final
ip
limit
public java.util.concurrent.CompletableFuture<java.io.Closeable> acquire();
descriptor: ()Ljava/util/concurrent/CompletableFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: aload 0
getfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._locker:Lorg/eclipse/jetty/util/thread/Locker;
invokevirtual org.eclipse.jetty.util.thread.Locker.lock:()Lorg/eclipse/jetty/util/thread/Locker$Lock;
astore 3
start local 3 2: aload 0
getfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._permits:I
aload 0
getfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._limit:I
if_icmpge 7
3: aload 0
dup
getfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._permits:I
iconst_1
iadd
putfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._permits:I
4: aload 0
getfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._permitted:Ljava/util/concurrent/CompletableFuture;
5: aload 3
ifnull 6
aload 3
invokevirtual org.eclipse.jetty.util.thread.Locker$Lock.close:()V
6: StackMap locals: org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote java.lang.Throwable java.lang.Throwable org.eclipse.jetty.util.thread.Locker$Lock
StackMap stack: java.util.concurrent.CompletableFuture
areturn
7: StackMap locals:
StackMap stack:
new java.util.concurrent.CompletableFuture
dup
invokespecial java.util.concurrent.CompletableFuture.<init>:()V
astore 4
start local 4 8: aload 0
getfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._queue:Ljava/util/Deque;
aload 4
invokeinterface java.util.Deque.addLast:(Ljava/lang/Object;)V
9: aload 4
10: aload 3
ifnull 11
aload 3
invokevirtual org.eclipse.jetty.util.thread.Locker$Lock.close:()V
11: StackMap locals: org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote java.lang.Throwable java.lang.Throwable org.eclipse.jetty.util.thread.Locker$Lock java.util.concurrent.CompletableFuture
StackMap stack: java.util.concurrent.CompletableFuture
areturn
end local 4 StackMap locals: org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote java.lang.Throwable java.lang.Throwable org.eclipse.jetty.util.thread.Locker$Lock
StackMap stack: java.lang.Throwable
12: astore 1
13: aload 3
ifnull 14
aload 3
invokevirtual org.eclipse.jetty.util.thread.Locker$Lock.close:()V
end local 3 StackMap locals:
StackMap stack:
14: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
15: astore 2
aload 1
ifnonnull 16
aload 2
astore 1
goto 17
StackMap locals:
StackMap stack:
16: aload 1
aload 2
if_acmpeq 17
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
17: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/eclipse/jetty/server/handler/ThreadLimitHandler$Remote;
2 14 3 lock Lorg/eclipse/jetty/util/thread/Locker$Lock;
8 12 4 pass Ljava/util/concurrent/CompletableFuture<Ljava/io/Closeable;>;
Exception table:
from to target type
2 5 12 any
7 10 12 any
1 6 15 any
7 11 15 any
12 15 15 any
Signature: ()Ljava/util/concurrent/CompletableFuture<Ljava/io/Closeable;>;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: aload 0
getfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._locker:Lorg/eclipse/jetty/util/thread/Locker;
invokevirtual org.eclipse.jetty.util.thread.Locker.lock:()Lorg/eclipse/jetty/util/thread/Locker$Lock;
astore 3
start local 3 2: aload 0
dup
getfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._permits:I
iconst_1
isub
putfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._permits:I
3: StackMap locals: java.lang.Throwable java.lang.Throwable org.eclipse.jetty.util.thread.Locker$Lock
StackMap stack:
aload 0
getfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._queue:Ljava/util/Deque;
invokeinterface java.util.Deque.pollFirst:()Ljava/lang/Object;
checkcast java.util.concurrent.CompletableFuture
astore 4
start local 4 4: aload 4
ifnonnull 6
5: goto 8
6: StackMap locals: java.util.concurrent.CompletableFuture
StackMap stack:
aload 4
aload 0
invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
ifeq 3
7: aload 0
dup
getfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._permits:I
iconst_1
iadd
putfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._permits:I
end local 4 8: StackMap locals:
StackMap stack:
aload 3
ifnull 14
aload 3
invokevirtual org.eclipse.jetty.util.thread.Locker$Lock.close:()V
goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 1
aload 3
ifnull 10
aload 3
invokevirtual org.eclipse.jetty.util.thread.Locker$Lock.close:()V
end local 3 StackMap locals:
StackMap stack:
10: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 2
aload 1
ifnonnull 12
aload 2
astore 1
goto 13
StackMap locals:
StackMap stack:
12: aload 1
aload 2
if_acmpeq 13
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
13: aload 1
athrow
14: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/eclipse/jetty/server/handler/ThreadLimitHandler$Remote;
2 10 3 lock Lorg/eclipse/jetty/util/thread/Locker$Lock;
4 8 4 permit Ljava/util/concurrent/CompletableFuture<Ljava/io/Closeable;>;
Exception table:
from to target type
2 8 9 any
1 11 11 any
Exceptions:
throws java.io.IOException
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: aload 0
getfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._locker:Lorg/eclipse/jetty/util/thread/Locker;
invokevirtual org.eclipse.jetty.util.thread.Locker.lock:()Lorg/eclipse/jetty/util/thread/Locker$Lock;
astore 3
start local 3 2: ldc "R[ip=%s,p=%d,l=%d,q=%d]"
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._ip:Ljava/lang/String;
aastore
dup
iconst_1
aload 0
getfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._permits:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 0
getfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._limit:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_3
aload 0
getfield org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote._queue:Ljava/util/Deque;
invokeinterface java.util.Deque.size:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
3: aload 3
ifnull 4
aload 3
invokevirtual org.eclipse.jetty.util.thread.Locker$Lock.close:()V
4: StackMap locals: org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote java.lang.Throwable java.lang.Throwable org.eclipse.jetty.util.thread.Locker$Lock
StackMap stack: java.lang.String
areturn
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 1
6: aload 3
ifnull 7
aload 3
invokevirtual org.eclipse.jetty.util.thread.Locker$Lock.close:()V
end local 3 StackMap locals:
StackMap stack:
7: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 2
aload 1
ifnonnull 9
aload 2
astore 1
goto 10
StackMap locals:
StackMap stack:
9: aload 1
aload 2
if_acmpeq 10
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
10: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/eclipse/jetty/server/handler/ThreadLimitHandler$Remote;
2 7 3 lock Lorg/eclipse/jetty/util/thread/Locker$Lock;
Exception table:
from to target type
2 3 5 any
1 4 8 any
5 8 8 any
}
SourceFile: "ThreadLimitHandler.java"
NestHost: org.eclipse.jetty.server.handler.ThreadLimitHandler
InnerClasses:
private final Remote = org.eclipse.jetty.server.handler.ThreadLimitHandler$Remote of org.eclipse.jetty.server.handler.ThreadLimitHandler
public Lock = org.eclipse.jetty.util.thread.Locker$Lock of org.eclipse.jetty.util.thread.Locker