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