public class org.apache.tomcat.util.threads.LimitLatch
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.tomcat.util.threads.LimitLatch
super_class: java.lang.Object
{
private static final org.apache.juli.logging.Log log;
descriptor: Lorg/apache/juli/logging/Log;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final org.apache.tomcat.util.threads.LimitLatch$Sync sync;
descriptor: Lorg/apache/tomcat/util/threads/LimitLatch$Sync;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.atomic.AtomicLong count;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile long limit;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean released;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/apache/tomcat/util/threads/LimitLatch;
invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
putstatic org.apache.tomcat.util.threads.LimitLatch.log:Lorg/apache/juli/logging/Log;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.apache.tomcat.util.threads.LimitLatch.released:Z
2: aload 0
lload 1
putfield org.apache.tomcat.util.threads.LimitLatch.limit:J
3: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
lconst_0
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
putfield org.apache.tomcat.util.threads.LimitLatch.count:Ljava/util/concurrent/atomic/AtomicLong;
4: aload 0
new org.apache.tomcat.util.threads.LimitLatch$Sync
dup
aload 0
invokespecial org.apache.tomcat.util.threads.LimitLatch$Sync.<init>:(Lorg/apache/tomcat/util/threads/LimitLatch;)V
putfield org.apache.tomcat.util.threads.LimitLatch.sync:Lorg/apache/tomcat/util/threads/LimitLatch$Sync;
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/tomcat/util/threads/LimitLatch;
0 6 1 limit J
MethodParameters:
Name Flags
limit
public long getCount();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.threads.LimitLatch.count:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/threads/LimitLatch;
public long getLimit();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.threads.LimitLatch.limit:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/threads/LimitLatch;
public void setLimit(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
putfield org.apache.tomcat.util.threads.LimitLatch.limit:J
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/tomcat/util/threads/LimitLatch;
0 2 1 limit J
MethodParameters:
Name Flags
limit
public void countUpOrAwait();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic org.apache.tomcat.util.threads.LimitLatch.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 2
1: getstatic org.apache.tomcat.util.threads.LimitLatch.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc "Counting up["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] latch="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.apache.tomcat.util.threads.LimitLatch.getCount:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.tomcat.util.threads.LimitLatch.sync:Lorg/apache/tomcat/util/threads/LimitLatch$Sync;
iconst_1
invokevirtual org.apache.tomcat.util.threads.LimitLatch$Sync.acquireSharedInterruptibly:(I)V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/tomcat/util/threads/LimitLatch;
Exceptions:
throws java.lang.InterruptedException
public long countDown();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.threads.LimitLatch.sync:Lorg/apache/tomcat/util/threads/LimitLatch$Sync;
iconst_0
invokevirtual org.apache.tomcat.util.threads.LimitLatch$Sync.releaseShared:(I)Z
pop
1: aload 0
invokevirtual org.apache.tomcat.util.threads.LimitLatch.getCount:()J
lstore 1
start local 1 2: getstatic org.apache.tomcat.util.threads.LimitLatch.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 4
3: getstatic org.apache.tomcat.util.threads.LimitLatch.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc "Counting down["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] latch="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
4: StackMap locals: long
StackMap stack:
lload 1
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/tomcat/util/threads/LimitLatch;
2 5 1 result J
public boolean releaseAll();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield org.apache.tomcat.util.threads.LimitLatch.released:Z
1: aload 0
getfield org.apache.tomcat.util.threads.LimitLatch.sync:Lorg/apache/tomcat/util/threads/LimitLatch$Sync;
iconst_0
invokevirtual org.apache.tomcat.util.threads.LimitLatch$Sync.releaseShared:(I)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/tomcat/util/threads/LimitLatch;
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.threads.LimitLatch.count:Ljava/util/concurrent/atomic/AtomicLong;
lconst_0
invokevirtual java.util.concurrent.atomic.AtomicLong.set:(J)V
1: aload 0
iconst_0
putfield org.apache.tomcat.util.threads.LimitLatch.released:Z
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/tomcat/util/threads/LimitLatch;
public boolean hasQueuedThreads();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.threads.LimitLatch.sync:Lorg/apache/tomcat/util/threads/LimitLatch$Sync;
invokevirtual org.apache.tomcat.util.threads.LimitLatch$Sync.hasQueuedThreads:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/threads/LimitLatch;
public java.util.Collection<java.lang.Thread> getQueuedThreads();
descriptor: ()Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.threads.LimitLatch.sync:Lorg/apache/tomcat/util/threads/LimitLatch$Sync;
invokevirtual org.apache.tomcat.util.threads.LimitLatch$Sync.getQueuedThreads:()Ljava/util/Collection;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/threads/LimitLatch;
Signature: ()Ljava/util/Collection<Ljava/lang/Thread;>;
}
SourceFile: "LimitLatch.java"
NestMembers:
org.apache.tomcat.util.threads.LimitLatch$Sync
InnerClasses:
private Sync = org.apache.tomcat.util.threads.LimitLatch$Sync of org.apache.tomcat.util.threads.LimitLatch