class com.netflix.hystrix.Hystrix$ConcurrentStack<E>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.netflix.hystrix.Hystrix$ConcurrentStack
  super_class: java.lang.Object
{
  java.util.concurrent.atomic.AtomicReference<com.netflix.hystrix.Hystrix$ConcurrentStack<E>.Node<E>> top;
    descriptor: Ljava/util/concurrent/atomic/AtomicReference;
    flags: (0x0000) 
    Signature: Ljava/util/concurrent/atomic/AtomicReference<Lcom/netflix/hystrix/Hystrix$ConcurrentStack<TE;>.Node<TE;>;>;

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.netflix.hystrix.Hystrix$ConcurrentStack this
         0: .line 152
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 153
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicReference
            dup
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
            putfield com.netflix.hystrix.Hystrix$ConcurrentStack.top:Ljava/util/concurrent/atomic/AtomicReference;
         2: .line 152
            return
        end local 0 // com.netflix.hystrix.Hystrix$ConcurrentStack this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/netflix/hystrix/Hystrix$ConcurrentStack<TE;>;

  public void push();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.netflix.hystrix.Hystrix$ConcurrentStack this
        start local 1 // java.lang.Object item
         0: .line 156
            new com.netflix.hystrix.Hystrix$ConcurrentStack$Node
            dup
            aload 0 /* this */
            aload 1 /* item */
            invokespecial com.netflix.hystrix.Hystrix$ConcurrentStack$Node.<init>:(Lcom/netflix/hystrix/Hystrix$ConcurrentStack;Ljava/lang/Object;)V
            astore 2 /* newHead */
        start local 2 // com.netflix.hystrix.Hystrix$ConcurrentStack$Node newHead
         1: .line 159
      StackMap locals: com.netflix.hystrix.Hystrix$ConcurrentStack$Node
      StackMap stack:
            aload 0 /* this */
            getfield com.netflix.hystrix.Hystrix$ConcurrentStack.top:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.netflix.hystrix.Hystrix$ConcurrentStack$Node
            astore 3 /* oldHead */
        start local 3 // com.netflix.hystrix.Hystrix$ConcurrentStack$Node oldHead
         2: .line 160
            aload 2 /* newHead */
            aload 3 /* oldHead */
            putfield com.netflix.hystrix.Hystrix$ConcurrentStack$Node.next:Lcom/netflix/hystrix/Hystrix$ConcurrentStack$Node;
         3: .line 161
            aload 0 /* this */
            getfield com.netflix.hystrix.Hystrix$ConcurrentStack.top:Ljava/util/concurrent/atomic/AtomicReference;
            aload 3 /* oldHead */
            aload 2 /* newHead */
            invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 1
         4: .line 162
            return
        end local 3 // com.netflix.hystrix.Hystrix$ConcurrentStack$Node oldHead
        end local 2 // com.netflix.hystrix.Hystrix$ConcurrentStack$Node newHead
        end local 1 // java.lang.Object item
        end local 0 // com.netflix.hystrix.Hystrix$ConcurrentStack this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/netflix/hystrix/Hystrix$ConcurrentStack<TE;>;
            0    5     1     item  TE;
            1    5     2  newHead  Lcom/netflix/hystrix/Hystrix$ConcurrentStack<TE;>.Node<TE;>;
            2    5     3  oldHead  Lcom/netflix/hystrix/Hystrix$ConcurrentStack<TE;>.Node<TE;>;
    Signature: (TE;)V
    MethodParameters:
      Name  Flags
      item  

  public E pop();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.netflix.hystrix.Hystrix$ConcurrentStack this
         0: .line 168
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.netflix.hystrix.Hystrix$ConcurrentStack.top:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.netflix.hystrix.Hystrix$ConcurrentStack$Node
            astore 1 /* oldHead */
        start local 1 // com.netflix.hystrix.Hystrix$ConcurrentStack$Node oldHead
         1: .line 169
            aload 1 /* oldHead */
            ifnonnull 3
         2: .line 170
            aconst_null
            areturn
         3: .line 172
      StackMap locals: com.netflix.hystrix.Hystrix$ConcurrentStack$Node
      StackMap stack:
            aload 1 /* oldHead */
            getfield com.netflix.hystrix.Hystrix$ConcurrentStack$Node.next:Lcom/netflix/hystrix/Hystrix$ConcurrentStack$Node;
            astore 2 /* newHead */
        start local 2 // com.netflix.hystrix.Hystrix$ConcurrentStack$Node newHead
         4: .line 173
            aload 0 /* this */
            getfield com.netflix.hystrix.Hystrix$ConcurrentStack.top:Ljava/util/concurrent/atomic/AtomicReference;
            aload 1 /* oldHead */
            aload 2 /* newHead */
            invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 0
         5: .line 174
            aload 1 /* oldHead */
            getfield com.netflix.hystrix.Hystrix$ConcurrentStack$Node.item:Ljava/lang/Object;
            areturn
        end local 2 // com.netflix.hystrix.Hystrix$ConcurrentStack$Node newHead
        end local 1 // com.netflix.hystrix.Hystrix$ConcurrentStack$Node oldHead
        end local 0 // com.netflix.hystrix.Hystrix$ConcurrentStack this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lcom/netflix/hystrix/Hystrix$ConcurrentStack<TE;>;
            1    6     1  oldHead  Lcom/netflix/hystrix/Hystrix$ConcurrentStack<TE;>.Node<TE;>;
            4    6     2  newHead  Lcom/netflix/hystrix/Hystrix$ConcurrentStack<TE;>.Node<TE;>;
    Signature: ()TE;

  public boolean isEmpty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.netflix.hystrix.Hystrix$ConcurrentStack this
         0: .line 178
            aload 0 /* this */
            getfield com.netflix.hystrix.Hystrix$ConcurrentStack.top:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            ifnonnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.netflix.hystrix.Hystrix$ConcurrentStack this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/netflix/hystrix/Hystrix$ConcurrentStack<TE;>;

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // com.netflix.hystrix.Hystrix$ConcurrentStack this
         0: .line 182
            iconst_0
            istore 1 /* currentSize */
        start local 1 // int currentSize
         1: .line 183
            aload 0 /* this */
            getfield com.netflix.hystrix.Hystrix$ConcurrentStack.top:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.netflix.hystrix.Hystrix$ConcurrentStack$Node
            astore 2 /* current */
        start local 2 // com.netflix.hystrix.Hystrix$ConcurrentStack$Node current
         2: .line 184
            goto 5
         3: .line 185
      StackMap locals: int com.netflix.hystrix.Hystrix$ConcurrentStack$Node
      StackMap stack:
            iinc 1 /* currentSize */ 1
         4: .line 186
            aload 2 /* current */
            getfield com.netflix.hystrix.Hystrix$ConcurrentStack$Node.next:Lcom/netflix/hystrix/Hystrix$ConcurrentStack$Node;
            astore 2 /* current */
         5: .line 184
      StackMap locals:
      StackMap stack:
            aload 2 /* current */
            ifnonnull 3
         6: .line 188
            iload 1 /* currentSize */
            ireturn
        end local 2 // com.netflix.hystrix.Hystrix$ConcurrentStack$Node current
        end local 1 // int currentSize
        end local 0 // com.netflix.hystrix.Hystrix$ConcurrentStack this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lcom/netflix/hystrix/Hystrix$ConcurrentStack<TE;>;
            1    7     1  currentSize  I
            2    7     2      current  Lcom/netflix/hystrix/Hystrix$ConcurrentStack<TE;>.Node<TE;>;

  public E peek();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.netflix.hystrix.Hystrix$ConcurrentStack this
         0: .line 192
            aload 0 /* this */
            getfield com.netflix.hystrix.Hystrix$ConcurrentStack.top:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.netflix.hystrix.Hystrix$ConcurrentStack$Node
            astore 1 /* eNode */
        start local 1 // com.netflix.hystrix.Hystrix$ConcurrentStack$Node eNode
         1: .line 193
            aload 1 /* eNode */
            ifnonnull 3
         2: .line 194
            aconst_null
            areturn
         3: .line 196
      StackMap locals: com.netflix.hystrix.Hystrix$ConcurrentStack$Node
      StackMap stack:
            aload 1 /* eNode */
            getfield com.netflix.hystrix.Hystrix$ConcurrentStack$Node.item:Ljava/lang/Object;
            areturn
        end local 1 // com.netflix.hystrix.Hystrix$ConcurrentStack$Node eNode
        end local 0 // com.netflix.hystrix.Hystrix$ConcurrentStack this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/netflix/hystrix/Hystrix$ConcurrentStack<TE;>;
            1    4     1  eNode  Lcom/netflix/hystrix/Hystrix$ConcurrentStack<TE;>.Node<TE;>;
    Signature: ()TE;
}
Signature: <E:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "Hystrix.java"
NestHost: com.netflix.hystrix.Hystrix
InnerClasses:
  private ConcurrentStack = com.netflix.hystrix.Hystrix$ConcurrentStack of com.netflix.hystrix.Hystrix
  private Node = com.netflix.hystrix.Hystrix$ConcurrentStack$Node of com.netflix.hystrix.Hystrix$ConcurrentStack