final class java.util.concurrent.SynchronousQueue$TransferStack<E> extends java.util.concurrent.SynchronousQueue$Transferer<E>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: java.util.concurrent.SynchronousQueue$TransferStack
  super_class: java.util.concurrent.SynchronousQueue$Transferer
{
  static final int REQUEST;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int DATA;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int FULFILLING;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  volatile java.util.concurrent.SynchronousQueue$TransferStack$SNode head;
    descriptor: Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
    flags: (0x0040) ACC_VOLATILE

  private static final sun.misc.Unsafe UNSAFE;
    descriptor: Lsun/misc/Unsafe;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final long headOffset;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 515
            invokestatic sun.misc.Unsafe.getUnsafe:()Lsun/misc/Unsafe;
            putstatic java.util.concurrent.SynchronousQueue$TransferStack.UNSAFE:Lsun/misc/Unsafe;
         1: .line 516
            ldc Ljava/util/concurrent/SynchronousQueue$TransferStack;
            astore 0 /* k */
        start local 0 // java.lang.Class k
         2: .line 517
            getstatic java.util.concurrent.SynchronousQueue$TransferStack.UNSAFE:Lsun/misc/Unsafe;
         3: .line 518
            aload 0 /* k */
            ldc "head"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
         4: .line 517
            invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
            putstatic java.util.concurrent.SynchronousQueue$TransferStack.headOffset:J
        end local 0 // java.lang.Class k
         5: .line 519
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Exception
         6: astore 0 /* e */
        start local 0 // java.lang.Exception e
         7: .line 520
            new java.lang.Error
            dup
            aload 0 /* e */
            invokespecial java.lang.Error.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 0 // java.lang.Exception e
         8: .line 522
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            2    5     0     k  Ljava/lang/Class<*>;
            7    8     0     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     5       6  Class java.lang.Exception

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.concurrent.SynchronousQueue$TransferStack this
         0: .line 211
            aload 0 /* this */
            invokespecial java.util.concurrent.SynchronousQueue$Transferer.<init>:()V
            return
        end local 0 // java.util.concurrent.SynchronousQueue$TransferStack this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/concurrent/SynchronousQueue$TransferStack<TE;>;

  static boolean isFulfilling(int);
    descriptor: (I)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int m
         0: .line 229
            iload 0 /* m */
            iconst_2
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // int m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     m  I
    MethodParameters:
      Name  Flags
      m     

  boolean casHead(java.util.concurrent.SynchronousQueue$TransferStack$SNode, java.util.concurrent.SynchronousQueue$TransferStack$SNode);
    descriptor: (Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
    flags: (0x0000) 
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // java.util.concurrent.SynchronousQueue$TransferStack this
        start local 1 // java.util.concurrent.SynchronousQueue$TransferStack$SNode h
        start local 2 // java.util.concurrent.SynchronousQueue$TransferStack$SNode nh
         0: .line 306
            aload 1 /* h */
            aload 0 /* this */
            getfield java.util.concurrent.SynchronousQueue$TransferStack.head:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            if_acmpne 3
         1: .line 307
            getstatic java.util.concurrent.SynchronousQueue$TransferStack.UNSAFE:Lsun/misc/Unsafe;
            aload 0 /* this */
            getstatic java.util.concurrent.SynchronousQueue$TransferStack.headOffset:J
            aload 1 /* h */
            aload 2 /* nh */
            invokevirtual sun.misc.Unsafe.compareAndSwapObject:(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z
            ifeq 3
         2: .line 306
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 2 // java.util.concurrent.SynchronousQueue$TransferStack$SNode nh
        end local 1 // java.util.concurrent.SynchronousQueue$TransferStack$SNode h
        end local 0 // java.util.concurrent.SynchronousQueue$TransferStack this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/util/concurrent/SynchronousQueue$TransferStack<TE;>;
            0    4     1     h  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            0    4     2    nh  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
    MethodParameters:
      Name  Flags
      h     
      nh    

  static java.util.concurrent.SynchronousQueue$TransferStack$SNode snode(java.util.concurrent.SynchronousQueue$TransferStack$SNode, java.lang.Object, java.util.concurrent.SynchronousQueue$TransferStack$SNode, int);
    descriptor: (Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/lang/Object;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;I)Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // java.util.concurrent.SynchronousQueue$TransferStack$SNode s
        start local 1 // java.lang.Object e
        start local 2 // java.util.concurrent.SynchronousQueue$TransferStack$SNode next
        start local 3 // int mode
         0: .line 318
            aload 0 /* s */
            ifnonnull 1
            new java.util.concurrent.SynchronousQueue$TransferStack$SNode
            dup
            aload 1 /* e */
            invokespecial java.util.concurrent.SynchronousQueue$TransferStack$SNode.<init>:(Ljava/lang/Object;)V
            astore 0 /* s */
         1: .line 319
      StackMap locals:
      StackMap stack:
            aload 0 /* s */
            iload 3 /* mode */
            putfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.mode:I
         2: .line 320
            aload 0 /* s */
            aload 2 /* next */
            putfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.next:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
         3: .line 321
            aload 0 /* s */
            areturn
        end local 3 // int mode
        end local 2 // java.util.concurrent.SynchronousQueue$TransferStack$SNode next
        end local 1 // java.lang.Object e
        end local 0 // java.util.concurrent.SynchronousQueue$TransferStack$SNode s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     s  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            0    4     1     e  Ljava/lang/Object;
            0    4     2  next  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            0    4     3  mode  I
    MethodParameters:
      Name  Flags
      s     
      e     
      next  
      mode  

  E transfer(E, boolean, );
    descriptor: (Ljava/lang/Object;ZJ)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=7, locals=10, args_size=4
        start local 0 // java.util.concurrent.SynchronousQueue$TransferStack this
        start local 1 // java.lang.Object e
        start local 2 // boolean timed
        start local 3 // long nanos
         0: .line 350
            aconst_null
            astore 5 /* s */
        start local 5 // java.util.concurrent.SynchronousQueue$TransferStack$SNode s
         1: .line 351
            aload 1 /* e */
            ifnonnull 2
            iconst_0
            goto 3
      StackMap locals: java.util.concurrent.SynchronousQueue$TransferStack$SNode
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: istore 6 /* mode */
        start local 6 // int mode
         4: .line 354
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.util.concurrent.SynchronousQueue$TransferStack.head:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            astore 7 /* h */
        start local 7 // java.util.concurrent.SynchronousQueue$TransferStack$SNode h
         5: .line 355
            aload 7 /* h */
            ifnull 6
            aload 7 /* h */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.mode:I
            iload 6 /* mode */
            if_icmpne 20
         6: .line 356
      StackMap locals: java.util.concurrent.SynchronousQueue$TransferStack$SNode
      StackMap stack:
            iload 2 /* timed */
            ifeq 10
            lload 3 /* nanos */
            lconst_0
            lcmp
            ifgt 10
         7: .line 357
            aload 7 /* h */
            ifnull 9
            aload 7 /* h */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack$SNode.isCancelled:()Z
            ifeq 9
         8: .line 358
            aload 0 /* this */
            aload 7 /* h */
            aload 7 /* h */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.next:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack.casHead:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
            pop
            goto 4
         9: .line 360
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        10: .line 361
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* h */
            aload 5 /* s */
            aload 1 /* e */
            aload 7 /* h */
            iload 6 /* mode */
            invokestatic java.util.concurrent.SynchronousQueue$TransferStack.snode:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/lang/Object;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;I)Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            dup
            astore 5 /* s */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack.casHead:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
            ifeq 4
        11: .line 362
            aload 0 /* this */
            aload 5 /* s */
            iload 2 /* timed */
            lload 3 /* nanos */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;ZJ)Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            astore 8 /* m */
        start local 8 // java.util.concurrent.SynchronousQueue$TransferStack$SNode m
        12: .line 363
            aload 8 /* m */
            aload 5 /* s */
            if_acmpne 15
        13: .line 364
            aload 0 /* this */
            aload 5 /* s */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack.clean:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)V
        14: .line 365
            aconst_null
            areturn
        15: .line 367
      StackMap locals: java.util.concurrent.SynchronousQueue$TransferStack$SNode
      StackMap stack:
            aload 0 /* this */
            getfield java.util.concurrent.SynchronousQueue$TransferStack.head:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            dup
            astore 7 /* h */
            ifnull 17
            aload 7 /* h */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.next:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            aload 5 /* s */
            if_acmpne 17
        16: .line 368
            aload 0 /* this */
            aload 7 /* h */
            aload 5 /* s */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.next:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack.casHead:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
            pop
        17: .line 369
      StackMap locals:
      StackMap stack:
            iload 6 /* mode */
            ifne 18
            aload 8 /* m */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.item:Ljava/lang/Object;
            goto 19
      StackMap locals:
      StackMap stack:
        18: aload 5 /* s */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.item:Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
        19: areturn
        end local 8 // java.util.concurrent.SynchronousQueue$TransferStack$SNode m
        20: .line 371
      StackMap locals:
      StackMap stack:
            aload 7 /* h */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.mode:I
            invokestatic java.util.concurrent.SynchronousQueue$TransferStack.isFulfilling:(I)Z
            ifne 37
        21: .line 372
            aload 7 /* h */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack$SNode.isCancelled:()Z
            ifeq 23
        22: .line 373
            aload 0 /* this */
            aload 7 /* h */
            aload 7 /* h */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.next:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack.casHead:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
            pop
            goto 4
        23: .line 374
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* h */
            aload 5 /* s */
            aload 1 /* e */
            aload 7 /* h */
            iconst_2
            iload 6 /* mode */
            ior
            invokestatic java.util.concurrent.SynchronousQueue$TransferStack.snode:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/lang/Object;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;I)Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            dup
            astore 5 /* s */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack.casHead:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
            ifeq 4
        24: .line 376
      StackMap locals:
      StackMap stack:
            aload 5 /* s */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.next:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            astore 8 /* m */
        start local 8 // java.util.concurrent.SynchronousQueue$TransferStack$SNode m
        25: .line 377
            aload 8 /* m */
            ifnonnull 29
        26: .line 378
            aload 0 /* this */
            aload 5 /* s */
            aconst_null
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack.casHead:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
            pop
        27: .line 379
            aconst_null
            astore 5 /* s */
        28: .line 380
            goto 4
        29: .line 382
      StackMap locals: java.util.concurrent.SynchronousQueue$TransferStack$SNode
      StackMap stack:
            aload 8 /* m */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.next:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            astore 9 /* mn */
        start local 9 // java.util.concurrent.SynchronousQueue$TransferStack$SNode mn
        30: .line 383
            aload 8 /* m */
            aload 5 /* s */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack$SNode.tryMatch:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
            ifeq 35
        31: .line 384
            aload 0 /* this */
            aload 5 /* s */
            aload 9 /* mn */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack.casHead:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
            pop
        32: .line 385
            iload 6 /* mode */
            ifne 33
            aload 8 /* m */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.item:Ljava/lang/Object;
            goto 34
      StackMap locals: java.util.concurrent.SynchronousQueue$TransferStack$SNode
      StackMap stack:
        33: aload 5 /* s */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.item:Ljava/lang/Object;
      StackMap locals:
      StackMap stack: java.lang.Object
        34: areturn
        35: .line 387
      StackMap locals:
      StackMap stack:
            aload 5 /* s */
            aload 8 /* m */
            aload 9 /* mn */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack$SNode.casNext:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
            pop
        end local 9 // java.util.concurrent.SynchronousQueue$TransferStack$SNode mn
        end local 8 // java.util.concurrent.SynchronousQueue$TransferStack$SNode m
        36: .line 375
            goto 24
        37: .line 391
      StackMap locals:
      StackMap stack:
            aload 7 /* h */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.next:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            astore 8 /* m */
        start local 8 // java.util.concurrent.SynchronousQueue$TransferStack$SNode m
        38: .line 392
            aload 8 /* m */
            ifnonnull 40
        39: .line 393
            aload 0 /* this */
            aload 7 /* h */
            aconst_null
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack.casHead:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
            pop
            goto 4
        40: .line 395
      StackMap locals: java.util.concurrent.SynchronousQueue$TransferStack$SNode
      StackMap stack:
            aload 8 /* m */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.next:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            astore 9 /* mn */
        start local 9 // java.util.concurrent.SynchronousQueue$TransferStack$SNode mn
        41: .line 396
            aload 8 /* m */
            aload 7 /* h */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack$SNode.tryMatch:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
            ifeq 43
        42: .line 397
            aload 0 /* this */
            aload 7 /* h */
            aload 9 /* mn */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack.casHead:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
            pop
            goto 4
        43: .line 399
      StackMap locals: java.util.concurrent.SynchronousQueue$TransferStack$SNode
      StackMap stack:
            aload 7 /* h */
            aload 8 /* m */
            aload 9 /* mn */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack$SNode.casNext:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
            pop
        end local 9 // java.util.concurrent.SynchronousQueue$TransferStack$SNode mn
        end local 8 // java.util.concurrent.SynchronousQueue$TransferStack$SNode m
        end local 7 // java.util.concurrent.SynchronousQueue$TransferStack$SNode h
        44: .line 353
            goto 4
        end local 6 // int mode
        end local 5 // java.util.concurrent.SynchronousQueue$TransferStack$SNode s
        end local 3 // long nanos
        end local 2 // boolean timed
        end local 1 // java.lang.Object e
        end local 0 // java.util.concurrent.SynchronousQueue$TransferStack this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   45     0   this  Ljava/util/concurrent/SynchronousQueue$TransferStack<TE;>;
            0   45     1      e  TE;
            0   45     2  timed  Z
            0   45     3  nanos  J
            1   45     5      s  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            4   45     6   mode  I
            5   44     7      h  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
           12   20     8      m  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
           25   36     8      m  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
           30   36     9     mn  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
           38   44     8      m  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
           41   44     9     mn  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
    Signature: (TE;ZJ)TE;
    MethodParameters:
       Name  Flags
      e      
      timed  
      nanos  

  java.util.concurrent.SynchronousQueue$TransferStack$SNode awaitFulfill(java.util.concurrent.SynchronousQueue$TransferStack$SNode, boolean, long);
    descriptor: (Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;ZJ)Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
    flags: (0x0000) 
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // java.util.concurrent.SynchronousQueue$TransferStack this
        start local 1 // java.util.concurrent.SynchronousQueue$TransferStack$SNode s
        start local 2 // boolean timed
        start local 3 // long nanos
         0: .line 436
            iload 2 /* timed */
            ifeq 1
            invokestatic java.lang.System.nanoTime:()J
            lload 3 /* nanos */
            ladd
            goto 2
      StackMap locals:
      StackMap stack:
         1: lconst_0
      StackMap locals:
      StackMap stack: long
         2: lstore 5 /* deadline */
        start local 5 // long deadline
         3: .line 437
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 7 /* w */
        start local 7 // java.lang.Thread w
         4: .line 438
            aload 0 /* this */
            aload 1 /* s */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack.shouldSpin:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
            ifeq 7
         5: .line 439
            iload 2 /* timed */
            ifeq 6
            getstatic java.util.concurrent.SynchronousQueue.maxTimedSpins:I
            goto 8
      StackMap locals: long java.lang.Thread
      StackMap stack:
         6: getstatic java.util.concurrent.SynchronousQueue.maxUntimedSpins:I
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_0
         8: .line 438
      StackMap locals:
      StackMap stack: int
            istore 8 /* spins */
        start local 8 // int spins
         9: .line 441
      StackMap locals: int
      StackMap stack:
            aload 7 /* w */
            invokevirtual java.lang.Thread.isInterrupted:()Z
            ifeq 11
        10: .line 442
            aload 1 /* s */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack$SNode.tryCancel:()V
        11: .line 443
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.match:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            astore 9 /* m */
        start local 9 // java.util.concurrent.SynchronousQueue$TransferStack$SNode m
        12: .line 444
            aload 9 /* m */
            ifnull 14
        13: .line 445
            aload 9 /* m */
            areturn
        14: .line 446
      StackMap locals: java.util.concurrent.SynchronousQueue$TransferStack$SNode
      StackMap stack:
            iload 2 /* timed */
            ifeq 19
        15: .line 447
            lload 5 /* deadline */
            invokestatic java.lang.System.nanoTime:()J
            lsub
            lstore 3 /* nanos */
        16: .line 448
            lload 3 /* nanos */
            lconst_0
            lcmp
            ifgt 19
        17: .line 449
            aload 1 /* s */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack$SNode.tryCancel:()V
        18: .line 450
            goto 9
        19: .line 453
      StackMap locals:
      StackMap stack:
            iload 8 /* spins */
            ifle 23
        20: .line 454
            aload 0 /* this */
            aload 1 /* s */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack.shouldSpin:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
            ifeq 21
            iload 8 /* spins */
            iconst_1
            isub
            goto 22
      StackMap locals:
      StackMap stack:
        21: iconst_0
      StackMap locals:
      StackMap stack: int
        22: istore 8 /* spins */
            goto 9
        23: .line 455
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.waiter:Ljava/lang/Thread;
            ifnonnull 25
        24: .line 456
            aload 1 /* s */
            aload 7 /* w */
            putfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.waiter:Ljava/lang/Thread;
            goto 9
        25: .line 457
      StackMap locals:
      StackMap stack:
            iload 2 /* timed */
            ifne 27
        26: .line 458
            aload 0 /* this */
            invokestatic java.util.concurrent.locks.LockSupport.park:(Ljava/lang/Object;)V
            goto 9
        27: .line 459
      StackMap locals:
      StackMap stack:
            lload 3 /* nanos */
            ldc 1000
            lcmp
            ifle 9
        28: .line 460
            aload 0 /* this */
            lload 3 /* nanos */
            invokestatic java.util.concurrent.locks.LockSupport.parkNanos:(Ljava/lang/Object;J)V
        end local 9 // java.util.concurrent.SynchronousQueue$TransferStack$SNode m
        29: .line 440
            goto 9
        end local 8 // int spins
        end local 7 // java.lang.Thread w
        end local 5 // long deadline
        end local 3 // long nanos
        end local 2 // boolean timed
        end local 1 // java.util.concurrent.SynchronousQueue$TransferStack$SNode s
        end local 0 // java.util.concurrent.SynchronousQueue$TransferStack this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   30     0      this  Ljava/util/concurrent/SynchronousQueue$TransferStack<TE;>;
            0   30     1         s  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            0   30     2     timed  Z
            0   30     3     nanos  J
            3   30     5  deadline  J
            4   30     7         w  Ljava/lang/Thread;
            9   30     8     spins  I
           12   29     9         m  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
    MethodParameters:
       Name  Flags
      s      
      timed  
      nanos  

  boolean shouldSpin(java.util.concurrent.SynchronousQueue$TransferStack$SNode);
    descriptor: (Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.concurrent.SynchronousQueue$TransferStack this
        start local 1 // java.util.concurrent.SynchronousQueue$TransferStack$SNode s
         0: .line 469
            aload 0 /* this */
            getfield java.util.concurrent.SynchronousQueue$TransferStack.head:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            astore 2 /* h */
        start local 2 // java.util.concurrent.SynchronousQueue$TransferStack$SNode h
         1: .line 470
            aload 2 /* h */
            aload 1 /* s */
            if_acmpeq 2
            aload 2 /* h */
            ifnull 2
            aload 2 /* h */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.mode:I
            invokestatic java.util.concurrent.SynchronousQueue$TransferStack.isFulfilling:(I)Z
            ifne 2
            iconst_0
            ireturn
      StackMap locals: java.util.concurrent.SynchronousQueue$TransferStack$SNode
      StackMap stack:
         2: iconst_1
            ireturn
        end local 2 // java.util.concurrent.SynchronousQueue$TransferStack$SNode h
        end local 1 // java.util.concurrent.SynchronousQueue$TransferStack$SNode s
        end local 0 // java.util.concurrent.SynchronousQueue$TransferStack this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/util/concurrent/SynchronousQueue$TransferStack<TE;>;
            0    3     1     s  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            1    3     2     h  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
    MethodParameters:
      Name  Flags
      s     

  void clean(java.util.concurrent.SynchronousQueue$TransferStack$SNode);
    descriptor: (Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.util.concurrent.SynchronousQueue$TransferStack this
        start local 1 // java.util.concurrent.SynchronousQueue$TransferStack$SNode s
         0: .line 477
            aload 1 /* s */
            aconst_null
            putfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.item:Ljava/lang/Object;
         1: .line 478
            aload 1 /* s */
            aconst_null
            putfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.waiter:Ljava/lang/Thread;
         2: .line 491
            aload 1 /* s */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.next:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            astore 2 /* past */
        start local 2 // java.util.concurrent.SynchronousQueue$TransferStack$SNode past
         3: .line 492
            aload 2 /* past */
            ifnull 7
            aload 2 /* past */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack$SNode.isCancelled:()Z
            ifeq 7
         4: .line 493
            aload 2 /* past */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.next:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            astore 2 /* past */
         5: .line 497
            goto 7
        start local 3 // java.util.concurrent.SynchronousQueue$TransferStack$SNode p
         6: .line 498
      StackMap locals: java.util.concurrent.SynchronousQueue$TransferStack$SNode java.util.concurrent.SynchronousQueue$TransferStack$SNode
      StackMap stack:
            aload 0 /* this */
            aload 3 /* p */
            aload 3 /* p */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.next:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack.casHead:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
            pop
        end local 3 // java.util.concurrent.SynchronousQueue$TransferStack$SNode p
         7: .line 497
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.concurrent.SynchronousQueue$TransferStack.head:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            dup
            astore 3 /* p */
        start local 3 // java.util.concurrent.SynchronousQueue$TransferStack$SNode p
         8: ifnull 14
            aload 3 /* p */
            aload 2 /* past */
            if_acmpeq 14
            aload 3 /* p */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack$SNode.isCancelled:()Z
            ifne 6
         9: .line 501
            goto 14
        10: .line 502
      StackMap locals: java.util.concurrent.SynchronousQueue$TransferStack$SNode
      StackMap stack:
            aload 3 /* p */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.next:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            astore 4 /* n */
        start local 4 // java.util.concurrent.SynchronousQueue$TransferStack$SNode n
        11: .line 503
            aload 4 /* n */
            ifnull 13
            aload 4 /* n */
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack$SNode.isCancelled:()Z
            ifeq 13
        12: .line 504
            aload 3 /* p */
            aload 4 /* n */
            aload 4 /* n */
            getfield java.util.concurrent.SynchronousQueue$TransferStack$SNode.next:Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            invokevirtual java.util.concurrent.SynchronousQueue$TransferStack$SNode.casNext:(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
            pop
            goto 14
        13: .line 506
      StackMap locals: java.util.concurrent.SynchronousQueue$TransferStack$SNode
      StackMap stack:
            aload 4 /* n */
            astore 3 /* p */
        end local 4 // java.util.concurrent.SynchronousQueue$TransferStack$SNode n
        14: .line 501
      StackMap locals:
      StackMap stack:
            aload 3 /* p */
            ifnull 15
            aload 3 /* p */
            aload 2 /* past */
            if_acmpne 10
        15: .line 508
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.concurrent.SynchronousQueue$TransferStack$SNode p
        end local 2 // java.util.concurrent.SynchronousQueue$TransferStack$SNode past
        end local 1 // java.util.concurrent.SynchronousQueue$TransferStack$SNode s
        end local 0 // java.util.concurrent.SynchronousQueue$TransferStack this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Ljava/util/concurrent/SynchronousQueue$TransferStack<TE;>;
            0   16     1     s  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            3   16     2  past  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            6    7     3     p  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
            8   16     3     p  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
           11   14     4     n  Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
    MethodParameters:
      Name  Flags
      s     
}
Signature: <E:Ljava/lang/Object;>Ljava/util/concurrent/SynchronousQueue$Transferer<TE;>;
SourceFile: "SynchronousQueue.java"
NestHost: java.util.concurrent.SynchronousQueue
InnerClasses:
  final TransferStack = java.util.concurrent.SynchronousQueue$TransferStack of java.util.concurrent.SynchronousQueue
  final SNode = java.util.concurrent.SynchronousQueue$TransferStack$SNode of java.util.concurrent.SynchronousQueue$TransferStack
  abstract Transferer = java.util.concurrent.SynchronousQueue$Transferer of java.util.concurrent.SynchronousQueue