class org.apache.tomcat.util.threads.LimitLatch$Sync extends java.util.concurrent.locks.AbstractQueuedSynchronizer
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.apache.tomcat.util.threads.LimitLatch$Sync
super_class: java.util.concurrent.locks.AbstractQueuedSynchronizer
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
final org.apache.tomcat.util.threads.LimitLatch this$0;
descriptor: Lorg/apache/tomcat/util/threads/LimitLatch;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(org.apache.tomcat.util.threads.LimitLatch);
descriptor: (Lorg/apache/tomcat/util/threads/LimitLatch;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // org.apache.tomcat.util.threads.LimitLatch$Sync this
0: .line 38
aload 0 /* this */
aload 1
putfield org.apache.tomcat.util.threads.LimitLatch$Sync.this$0:Lorg/apache/tomcat/util/threads/LimitLatch;
aload 0 /* this */
invokespecial java.util.concurrent.locks.AbstractQueuedSynchronizer.<init>:()V
1: .line 39
return
end local 0 // org.apache.tomcat.util.threads.LimitLatch$Sync this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/tomcat/util/threads/LimitLatch$Sync;
MethodParameters:
Name Flags
this$0 final
protected int tryAcquireShared(int);
descriptor: (I)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=2
start local 0 // org.apache.tomcat.util.threads.LimitLatch$Sync this
start local 1 // int ignored
0: .line 43
aload 0 /* this */
getfield org.apache.tomcat.util.threads.LimitLatch$Sync.this$0:Lorg/apache/tomcat/util/threads/LimitLatch;
getfield org.apache.tomcat.util.threads.LimitLatch.count:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
lstore 2 /* newCount */
start local 2 // long newCount
1: .line 44
aload 0 /* this */
getfield org.apache.tomcat.util.threads.LimitLatch$Sync.this$0:Lorg/apache/tomcat/util/threads/LimitLatch;
getfield org.apache.tomcat.util.threads.LimitLatch.released:Z
ifne 4
lload 2 /* newCount */
aload 0 /* this */
getfield org.apache.tomcat.util.threads.LimitLatch$Sync.this$0:Lorg/apache/tomcat/util/threads/LimitLatch;
getfield org.apache.tomcat.util.threads.LimitLatch.limit:J
lcmp
ifle 4
2: .line 46
aload 0 /* this */
getfield org.apache.tomcat.util.threads.LimitLatch$Sync.this$0:Lorg/apache/tomcat/util/threads/LimitLatch;
getfield org.apache.tomcat.util.threads.LimitLatch.count:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.decrementAndGet:()J
pop2
3: .line 47
iconst_m1
ireturn
4: .line 49
StackMap locals: long
StackMap stack:
iconst_1
ireturn
end local 2 // long newCount
end local 1 // int ignored
end local 0 // org.apache.tomcat.util.threads.LimitLatch$Sync this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/tomcat/util/threads/LimitLatch$Sync;
0 5 1 ignored I
1 5 2 newCount J
MethodParameters:
Name Flags
ignored
protected boolean tryReleaseShared(int);
descriptor: (I)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 // org.apache.tomcat.util.threads.LimitLatch$Sync this
start local 1 // int arg
0: .line 55
aload 0 /* this */
getfield org.apache.tomcat.util.threads.LimitLatch$Sync.this$0:Lorg/apache/tomcat/util/threads/LimitLatch;
getfield org.apache.tomcat.util.threads.LimitLatch.count:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.decrementAndGet:()J
pop2
1: .line 56
iconst_1
ireturn
end local 1 // int arg
end local 0 // org.apache.tomcat.util.threads.LimitLatch$Sync this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/tomcat/util/threads/LimitLatch$Sync;
0 2 1 arg I
MethodParameters:
Name Flags
arg
}
SourceFile: "LimitLatch.java"
NestHost: org.apache.tomcat.util.threads.LimitLatch
InnerClasses:
private Sync = org.apache.tomcat.util.threads.LimitLatch$Sync of org.apache.tomcat.util.threads.LimitLatch