public class java.util.concurrent.DelayQueue<E extends java.util.concurrent.Delayed> extends java.util.AbstractQueue<E> implements java.util.concurrent.BlockingQueue<E>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.util.concurrent.DelayQueue
  super_class: java.util.AbstractQueue
{
  private final transient java.util.concurrent.locks.ReentrantLock lock;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x0092) ACC_PRIVATE, ACC_FINAL, ACC_TRANSIENT

  private final java.util.PriorityQueue<E> q;
    descriptor: Ljava/util/PriorityQueue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/PriorityQueue<TE;>;

  private java.lang.Thread leader;
    descriptor: Ljava/lang/Thread;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.concurrent.locks.Condition available;
    descriptor: Ljava/util/concurrent/locks/Condition;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.concurrent.DelayQueue this
         0: .line 102
            aload 0 /* this */
            invokespecial java.util.AbstractQueue.<init>:()V
         1: .line 71
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield java.util.concurrent.DelayQueue.lock:Ljava/util/concurrent/locks/ReentrantLock;
         2: .line 72
            aload 0 /* this */
            new java.util.PriorityQueue
            dup
            invokespecial java.util.PriorityQueue.<init>:()V
            putfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
         3: .line 90
            aload 0 /* this */
            aconst_null
            putfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
         4: .line 97
            aload 0 /* this */
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.lock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.newCondition:()Ljava/util/concurrent/locks/Condition;
            putfield java.util.concurrent.DelayQueue.available:Ljava/util/concurrent/locks/Condition;
         5: .line 102
            return
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/util/concurrent/DelayQueue<TE;>;

  public void <init>(java.util.Collection<? extends E>);
    descriptor: (Ljava/util/Collection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.util.concurrent.DelayQueue this
        start local 1 // java.util.Collection c
         0: .line 112
            aload 0 /* this */
            invokespecial java.util.AbstractQueue.<init>:()V
         1: .line 71
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield java.util.concurrent.DelayQueue.lock:Ljava/util/concurrent/locks/ReentrantLock;
         2: .line 72
            aload 0 /* this */
            new java.util.PriorityQueue
            dup
            invokespecial java.util.PriorityQueue.<init>:()V
            putfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
         3: .line 90
            aload 0 /* this */
            aconst_null
            putfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
         4: .line 97
            aload 0 /* this */
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.lock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.newCondition:()Ljava/util/concurrent/locks/Condition;
            putfield java.util.concurrent.DelayQueue.available:Ljava/util/concurrent/locks/Condition;
         5: .line 113
            aload 0 /* this */
            aload 1 /* c */
            invokevirtual java.util.concurrent.DelayQueue.addAll:(Ljava/util/Collection;)Z
            pop
         6: .line 114
            return
        end local 1 // java.util.Collection c
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljava/util/concurrent/DelayQueue<TE;>;
            0    7     1     c  Ljava/util/Collection<+TE;>;
    Signature: (Ljava/util/Collection<+TE;>;)V
    MethodParameters:
      Name  Flags
      c     

  public boolean add();
    descriptor: (Ljava/util/concurrent/Delayed;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.concurrent.DelayQueue this
        start local 1 // java.util.concurrent.Delayed e
         0: .line 124
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual java.util.concurrent.DelayQueue.offer:(Ljava/util/concurrent/Delayed;)Z
            ireturn
        end local 1 // java.util.concurrent.Delayed e
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/concurrent/DelayQueue<TE;>;
            0    1     1     e  TE;
    Signature: (TE;)Z
    MethodParameters:
      Name  Flags
      e     

  public boolean offer();
    descriptor: (Ljava/util/concurrent/Delayed;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.util.concurrent.DelayQueue this
        start local 1 // java.util.concurrent.Delayed e
         0: .line 135
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.lock:Ljava/util/concurrent/locks/ReentrantLock;
            astore 2 /* lock */
        start local 2 // java.util.concurrent.locks.ReentrantLock lock
         1: .line 136
            aload 2 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 138
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            aload 1 /* e */
            invokevirtual java.util.PriorityQueue.offer:(Ljava/lang/Object;)Z
            pop
         3: .line 139
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.peek:()Ljava/lang/Object;
            aload 1 /* e */
            if_acmpne 6
         4: .line 140
            aload 0 /* this */
            aconst_null
            putfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
         5: .line 141
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.available:Ljava/util/concurrent/locks/Condition;
            invokeinterface java.util.concurrent.locks.Condition.signal:()V
         6: .line 145
      StackMap locals: java.util.concurrent.locks.ReentrantLock
      StackMap stack:
            aload 2 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 143
            iconst_1
            ireturn
         8: .line 144
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
         9: .line 145
            aload 2 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 146
            aload 3
            athrow
        end local 2 // java.util.concurrent.locks.ReentrantLock lock
        end local 1 // java.util.concurrent.Delayed e
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljava/util/concurrent/DelayQueue<TE;>;
            0   11     1     e  TE;
            1   11     2  lock  Ljava/util/concurrent/locks/ReentrantLock;
      Exception table:
        from    to  target  type
           2     6       8  any
    Signature: (TE;)Z
    MethodParameters:
      Name  Flags
      e     

  public void put();
    descriptor: (Ljava/util/concurrent/Delayed;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.concurrent.DelayQueue this
        start local 1 // java.util.concurrent.Delayed e
         0: .line 157
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual java.util.concurrent.DelayQueue.offer:(Ljava/util/concurrent/Delayed;)Z
            pop
         1: .line 158
            return
        end local 1 // java.util.concurrent.Delayed e
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/util/concurrent/DelayQueue<TE;>;
            0    2     1     e  TE;
    Signature: (TE;)V
    MethodParameters:
      Name  Flags
      e     

  public boolean offer(E, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/util/concurrent/Delayed;JLjava/util/concurrent/TimeUnit;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // java.util.concurrent.DelayQueue this
        start local 1 // java.util.concurrent.Delayed e
        start local 2 // long timeout
        start local 4 // java.util.concurrent.TimeUnit unit
         0: .line 171
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual java.util.concurrent.DelayQueue.offer:(Ljava/util/concurrent/Delayed;)Z
            ireturn
        end local 4 // java.util.concurrent.TimeUnit unit
        end local 2 // long timeout
        end local 1 // java.util.concurrent.Delayed e
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Ljava/util/concurrent/DelayQueue<TE;>;
            0    1     1        e  TE;
            0    1     2  timeout  J
            0    1     4     unit  Ljava/util/concurrent/TimeUnit;
    Signature: (TE;JLjava/util/concurrent/TimeUnit;)Z
    MethodParameters:
         Name  Flags
      e        
      timeout  
      unit     

  public E poll();
    descriptor: ()Ljava/util/concurrent/Delayed;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.util.concurrent.DelayQueue this
         0: .line 182
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.lock:Ljava/util/concurrent/locks/ReentrantLock;
            astore 1 /* lock */
        start local 1 // java.util.concurrent.locks.ReentrantLock lock
         1: .line 183
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 185
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.peek:()Ljava/lang/Object;
            checkcast java.util.concurrent.Delayed
            astore 2 /* first */
        start local 2 // java.util.concurrent.Delayed first
         3: .line 186
            aload 2 /* first */
            ifnull 4
            aload 2 /* first */
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.Delayed.getDelay:(Ljava/util/concurrent/TimeUnit;)J
            lconst_0
            lcmp
            ifle 6
         4: .line 191
      StackMap locals: java.util.concurrent.locks.ReentrantLock java.util.concurrent.Delayed
      StackMap stack:
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         5: .line 187
            aconst_null
            areturn
         6: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.poll:()Ljava/lang/Object;
            checkcast java.util.concurrent.Delayed
            astore 4
         7: .line 191
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         8: .line 189
            aload 4
            areturn
        end local 2 // java.util.concurrent.Delayed first
         9: .line 190
      StackMap locals: java.util.concurrent.DelayQueue java.util.concurrent.locks.ReentrantLock
      StackMap stack: java.lang.Throwable
            astore 3
        10: .line 191
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        11: .line 192
            aload 3
            athrow
        end local 1 // java.util.concurrent.locks.ReentrantLock lock
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Ljava/util/concurrent/DelayQueue<TE;>;
            1   12     1   lock  Ljava/util/concurrent/locks/ReentrantLock;
            3    9     2  first  TE;
      Exception table:
        from    to  target  type
           2     4       9  any
           6     7       9  any
    Signature: ()TE;

  public E take();
    descriptor: ()Ljava/util/concurrent/Delayed;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=1
        start local 0 // java.util.concurrent.DelayQueue this
         0: .line 203
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.lock:Ljava/util/concurrent/locks/ReentrantLock;
            astore 1 /* lock */
        start local 1 // java.util.concurrent.locks.ReentrantLock lock
         1: .line 204
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.lockInterruptibly:()V
         2: .line 207
      StackMap locals: java.util.concurrent.locks.ReentrantLock
      StackMap stack:
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.peek:()Ljava/lang/Object;
            checkcast java.util.concurrent.Delayed
            astore 2 /* first */
        start local 2 // java.util.concurrent.Delayed first
         3: .line 208
            aload 2 /* first */
            ifnonnull 5
         4: .line 209
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.available:Ljava/util/concurrent/locks/Condition;
            invokeinterface java.util.concurrent.locks.Condition.await:()V
            goto 2
         5: .line 211
      StackMap locals: java.util.concurrent.Delayed
      StackMap stack:
            aload 2 /* first */
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.Delayed.getDelay:(Ljava/util/concurrent/TimeUnit;)J
            lstore 3 /* delay */
        start local 3 // long delay
         6: .line 212
            lload 3 /* delay */
            lconst_0
            lcmp
            ifgt 12
         7: .line 213
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.poll:()Ljava/lang/Object;
            checkcast java.util.concurrent.Delayed
            astore 8
         8: .line 229
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
            ifnonnull 10
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.peek:()Ljava/lang/Object;
            ifnull 10
         9: .line 230
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.available:Ljava/util/concurrent/locks/Condition;
            invokeinterface java.util.concurrent.locks.Condition.signal:()V
        10: .line 231
      StackMap locals: java.util.concurrent.DelayQueue java.util.concurrent.locks.ReentrantLock java.util.concurrent.Delayed long top top top java.util.concurrent.Delayed
      StackMap stack:
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        11: .line 213
            aload 8
            areturn
        12: .line 214
      StackMap locals: java.util.concurrent.DelayQueue java.util.concurrent.locks.ReentrantLock java.util.concurrent.Delayed long
      StackMap stack:
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
            ifnull 14
        13: .line 215
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.available:Ljava/util/concurrent/locks/Condition;
            invokeinterface java.util.concurrent.locks.Condition.await:()V
            goto 2
        14: .line 217
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 5 /* thisThread */
        start local 5 // java.lang.Thread thisThread
        15: .line 218
            aload 0 /* this */
            aload 5 /* thisThread */
            putfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
        16: .line 220
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.available:Ljava/util/concurrent/locks/Condition;
            lload 3 /* delay */
            invokeinterface java.util.concurrent.locks.Condition.awaitNanos:(J)J
            pop2
        17: .line 221
            goto 22
      StackMap locals: java.util.concurrent.DelayQueue java.util.concurrent.locks.ReentrantLock java.util.concurrent.Delayed long java.lang.Thread
      StackMap stack: java.lang.Throwable
        18: astore 6
        19: .line 222
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
            aload 5 /* thisThread */
            if_acmpne 21
        20: .line 223
            aload 0 /* this */
            aconst_null
            putfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
        21: .line 224
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        22: .line 222
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
            aload 5 /* thisThread */
            if_acmpne 2
        23: .line 223
            aload 0 /* this */
            aconst_null
            putfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
        end local 5 // java.lang.Thread thisThread
        end local 3 // long delay
        end local 2 // java.util.concurrent.Delayed first
        24: .line 206
            goto 2
        25: .line 228
      StackMap locals: java.util.concurrent.DelayQueue java.util.concurrent.locks.ReentrantLock
      StackMap stack: java.lang.Throwable
            astore 7
        26: .line 229
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
            ifnonnull 28
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.peek:()Ljava/lang/Object;
            ifnull 28
        27: .line 230
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.available:Ljava/util/concurrent/locks/Condition;
            invokeinterface java.util.concurrent.locks.Condition.signal:()V
        28: .line 231
      StackMap locals: java.util.concurrent.DelayQueue java.util.concurrent.locks.ReentrantLock top top top top top java.lang.Throwable
      StackMap stack:
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        29: .line 232
            aload 7
            athrow
        end local 1 // java.util.concurrent.locks.ReentrantLock lock
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   30     0        this  Ljava/util/concurrent/DelayQueue<TE;>;
            1   30     1        lock  Ljava/util/concurrent/locks/ReentrantLock;
            3   24     2       first  TE;
            6   24     3       delay  J
           15   24     5  thisThread  Ljava/lang/Thread;
      Exception table:
        from    to  target  type
          16    18      18  any
           2     8      25  any
          12    25      25  any
    Exceptions:
      throws java.lang.InterruptedException
    Signature: ()TE;

  public E poll(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/Delayed;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=16, args_size=3
        start local 0 // java.util.concurrent.DelayQueue this
        start local 1 // long timeout
        start local 3 // java.util.concurrent.TimeUnit unit
         0: .line 246
            aload 3 /* unit */
            lload 1 /* timeout */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 4 /* nanos */
        start local 4 // long nanos
         1: .line 247
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.lock:Ljava/util/concurrent/locks/ReentrantLock;
            astore 6 /* lock */
        start local 6 // java.util.concurrent.locks.ReentrantLock lock
         2: .line 248
            aload 6 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.lockInterruptibly:()V
         3: .line 251
      StackMap locals: long java.util.concurrent.locks.ReentrantLock
      StackMap stack:
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.peek:()Ljava/lang/Object;
            checkcast java.util.concurrent.Delayed
            astore 7 /* first */
        start local 7 // java.util.concurrent.Delayed first
         4: .line 252
            aload 7 /* first */
            ifnonnull 12
         5: .line 253
            lload 4 /* nanos */
            lconst_0
            lcmp
            ifgt 10
         6: .line 279
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
            ifnonnull 8
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.peek:()Ljava/lang/Object;
            ifnull 8
         7: .line 280
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.available:Ljava/util/concurrent/locks/Condition;
            invokeinterface java.util.concurrent.locks.Condition.signal:()V
         8: .line 281
      StackMap locals: java.util.concurrent.Delayed
      StackMap stack:
            aload 6 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 254
            aconst_null
            areturn
        10: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.available:Ljava/util/concurrent/locks/Condition;
            lload 4 /* nanos */
            invokeinterface java.util.concurrent.locks.Condition.awaitNanos:(J)J
            lstore 4 /* nanos */
        11: .line 257
            goto 3
        12: .line 258
      StackMap locals:
      StackMap stack:
            aload 7 /* first */
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.Delayed.getDelay:(Ljava/util/concurrent/TimeUnit;)J
            lstore 8 /* delay */
        start local 8 // long delay
        13: .line 259
            lload 8 /* delay */
            lconst_0
            lcmp
            ifgt 19
        14: .line 260
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.poll:()Ljava/lang/Object;
            checkcast java.util.concurrent.Delayed
            astore 15
        15: .line 279
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
            ifnonnull 17
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.peek:()Ljava/lang/Object;
            ifnull 17
        16: .line 280
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.available:Ljava/util/concurrent/locks/Condition;
            invokeinterface java.util.concurrent.locks.Condition.signal:()V
        17: .line 281
      StackMap locals: java.util.concurrent.DelayQueue long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock java.util.concurrent.Delayed long top top top top top java.util.concurrent.Delayed
      StackMap stack:
            aload 6 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        18: .line 260
            aload 15
            areturn
        19: .line 261
      StackMap locals: java.util.concurrent.DelayQueue long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock java.util.concurrent.Delayed long
      StackMap stack:
            lload 4 /* nanos */
            lconst_0
            lcmp
            ifgt 24
        20: .line 279
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
            ifnonnull 22
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.peek:()Ljava/lang/Object;
            ifnull 22
        21: .line 280
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.available:Ljava/util/concurrent/locks/Condition;
            invokeinterface java.util.concurrent.locks.Condition.signal:()V
        22: .line 281
      StackMap locals:
      StackMap stack:
            aload 6 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        23: .line 262
            aconst_null
            areturn
        24: .line 263
      StackMap locals:
      StackMap stack:
            lload 4 /* nanos */
            lload 8 /* delay */
            lcmp
            iflt 25
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
            ifnull 26
        25: .line 264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.available:Ljava/util/concurrent/locks/Condition;
            lload 4 /* nanos */
            invokeinterface java.util.concurrent.locks.Condition.awaitNanos:(J)J
            lstore 4 /* nanos */
            goto 3
        26: .line 266
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 10 /* thisThread */
        start local 10 // java.lang.Thread thisThread
        27: .line 267
            aload 0 /* this */
            aload 10 /* thisThread */
            putfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
        28: .line 269
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.available:Ljava/util/concurrent/locks/Condition;
            lload 8 /* delay */
            invokeinterface java.util.concurrent.locks.Condition.awaitNanos:(J)J
            lstore 11 /* timeLeft */
        start local 11 // long timeLeft
        29: .line 270
            lload 4 /* nanos */
            lload 8 /* delay */
            lload 11 /* timeLeft */
            lsub
            lsub
            lstore 4 /* nanos */
        end local 11 // long timeLeft
        30: .line 271
            goto 35
      StackMap locals: java.util.concurrent.DelayQueue long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock java.util.concurrent.Delayed long java.lang.Thread
      StackMap stack: java.lang.Throwable
        31: astore 13
        32: .line 272
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
            aload 10 /* thisThread */
            if_acmpne 34
        33: .line 273
            aload 0 /* this */
            aconst_null
            putfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
        34: .line 274
      StackMap locals: java.util.concurrent.DelayQueue long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock java.util.concurrent.Delayed long java.lang.Thread top top java.lang.Throwable
      StackMap stack:
            aload 13
            athrow
        35: .line 272
      StackMap locals: java.util.concurrent.DelayQueue long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock java.util.concurrent.Delayed long java.lang.Thread
      StackMap stack:
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
            aload 10 /* thisThread */
            if_acmpne 3
        36: .line 273
            aload 0 /* this */
            aconst_null
            putfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
        end local 10 // java.lang.Thread thisThread
        end local 8 // long delay
        end local 7 // java.util.concurrent.Delayed first
        37: .line 250
            goto 3
        38: .line 278
      StackMap locals: java.util.concurrent.DelayQueue long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock
      StackMap stack: java.lang.Throwable
            astore 14
        39: .line 279
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.leader:Ljava/lang/Thread;
            ifnonnull 41
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.peek:()Ljava/lang/Object;
            ifnull 41
        40: .line 280
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.available:Ljava/util/concurrent/locks/Condition;
            invokeinterface java.util.concurrent.locks.Condition.signal:()V
        41: .line 281
      StackMap locals: java.util.concurrent.DelayQueue long java.util.concurrent.TimeUnit long java.util.concurrent.locks.ReentrantLock top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 6 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        42: .line 282
            aload 14
            athrow
        end local 6 // java.util.concurrent.locks.ReentrantLock lock
        end local 4 // long nanos
        end local 3 // java.util.concurrent.TimeUnit unit
        end local 1 // long timeout
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   43     0        this  Ljava/util/concurrent/DelayQueue<TE;>;
            0   43     1     timeout  J
            0   43     3        unit  Ljava/util/concurrent/TimeUnit;
            1   43     4       nanos  J
            2   43     6        lock  Ljava/util/concurrent/locks/ReentrantLock;
            4   37     7       first  TE;
           13   37     8       delay  J
           27   37    10  thisThread  Ljava/lang/Thread;
           29   30    11    timeLeft  J
      Exception table:
        from    to  target  type
          28    31      31  any
           3     6      38  any
          10    15      38  any
          19    20      38  any
          24    38      38  any
    Exceptions:
      throws java.lang.InterruptedException
    Signature: (JLjava/util/concurrent/TimeUnit;)TE;
    MethodParameters:
         Name  Flags
      timeout  
      unit     

  public E peek();
    descriptor: ()Ljava/util/concurrent/Delayed;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=1
        start local 0 // java.util.concurrent.DelayQueue this
         0: .line 296
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.lock:Ljava/util/concurrent/locks/ReentrantLock;
            astore 1 /* lock */
        start local 1 // java.util.concurrent.locks.ReentrantLock lock
         1: .line 297
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 299
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.peek:()Ljava/lang/Object;
            checkcast java.util.concurrent.Delayed
            astore 3
         3: .line 301
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         4: .line 299
            aload 3
            areturn
         5: .line 300
      StackMap locals: java.util.concurrent.DelayQueue java.util.concurrent.locks.ReentrantLock
      StackMap stack: java.lang.Throwable
            astore 2
         6: .line 301
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 302
            aload 2
            athrow
        end local 1 // java.util.concurrent.locks.ReentrantLock lock
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljava/util/concurrent/DelayQueue<TE;>;
            1    8     1  lock  Ljava/util/concurrent/locks/ReentrantLock;
      Exception table:
        from    to  target  type
           2     3       5  any
    Signature: ()TE;

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=1
        start local 0 // java.util.concurrent.DelayQueue this
         0: .line 306
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.lock:Ljava/util/concurrent/locks/ReentrantLock;
            astore 1 /* lock */
        start local 1 // java.util.concurrent.locks.ReentrantLock lock
         1: .line 307
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 309
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.size:()I
            istore 3
         3: .line 311
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         4: .line 309
            iload 3
            ireturn
         5: .line 310
      StackMap locals: java.util.concurrent.DelayQueue java.util.concurrent.locks.ReentrantLock
      StackMap stack: java.lang.Throwable
            astore 2
         6: .line 311
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 312
            aload 2
            athrow
        end local 1 // java.util.concurrent.locks.ReentrantLock lock
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljava/util/concurrent/DelayQueue<TE;>;
            1    8     1  lock  Ljava/util/concurrent/locks/ReentrantLock;
      Exception table:
        from    to  target  type
           2     3       5  any

  public int drainTo(java.util.Collection<? super E>);
    descriptor: (Ljava/util/Collection;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // java.util.concurrent.DelayQueue this
        start local 1 // java.util.Collection c
         0: .line 322
            aload 1 /* c */
            ifnonnull 2
         1: .line 323
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 324
      StackMap locals:
      StackMap stack:
            aload 1 /* c */
            aload 0 /* this */
            if_acmpne 4
         3: .line 325
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         4: .line 326
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.lock:Ljava/util/concurrent/locks/ReentrantLock;
            astore 2 /* lock */
        start local 2 // java.util.concurrent.locks.ReentrantLock lock
         5: .line 327
            aload 2 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         6: .line 329
            iconst_0
            istore 3 /* n */
        start local 3 // int n
         7: .line 331
      StackMap locals: java.util.concurrent.locks.ReentrantLock int
      StackMap stack:
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.peek:()Ljava/lang/Object;
            checkcast java.util.concurrent.Delayed
            astore 4 /* first */
        start local 4 // java.util.concurrent.Delayed first
         8: .line 332
            aload 4 /* first */
            ifnull 13
            aload 4 /* first */
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.Delayed.getDelay:(Ljava/util/concurrent/TimeUnit;)J
            lconst_0
            lcmp
            ifle 10
         9: .line 333
            goto 13
        10: .line 334
      StackMap locals: java.util.concurrent.Delayed
      StackMap stack:
            aload 1 /* c */
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.poll:()Ljava/lang/Object;
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        11: .line 335
            iinc 3 /* n */ 1
        end local 4 // java.util.concurrent.Delayed first
        12: .line 330
            goto 7
        13: .line 337
      StackMap locals:
      StackMap stack:
            iload 3 /* n */
            istore 6
        14: .line 339
            aload 2 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        15: .line 337
            iload 6
            ireturn
        end local 3 // int n
        16: .line 338
      StackMap locals: java.util.concurrent.DelayQueue java.util.Collection java.util.concurrent.locks.ReentrantLock
      StackMap stack: java.lang.Throwable
            astore 5
        17: .line 339
            aload 2 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        18: .line 340
            aload 5
            athrow
        end local 2 // java.util.concurrent.locks.ReentrantLock lock
        end local 1 // java.util.Collection c
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   19     0   this  Ljava/util/concurrent/DelayQueue<TE;>;
            0   19     1      c  Ljava/util/Collection<-TE;>;
            5   19     2   lock  Ljava/util/concurrent/locks/ReentrantLock;
            7   16     3      n  I
            8   12     4  first  TE;
      Exception table:
        from    to  target  type
           6    14      16  any
    Signature: (Ljava/util/Collection<-TE;>;)I
    MethodParameters:
      Name  Flags
      c     

  public int drainTo(java.util.Collection<? super E>, );
    descriptor: (Ljava/util/Collection;I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // java.util.concurrent.DelayQueue this
        start local 1 // java.util.Collection c
        start local 2 // int maxElements
         0: .line 350
            aload 1 /* c */
            ifnonnull 2
         1: .line 351
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 352
      StackMap locals:
      StackMap stack:
            aload 1 /* c */
            aload 0 /* this */
            if_acmpne 4
         3: .line 353
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         4: .line 354
      StackMap locals:
      StackMap stack:
            iload 2 /* maxElements */
            ifgt 6
         5: .line 355
            iconst_0
            ireturn
         6: .line 356
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.lock:Ljava/util/concurrent/locks/ReentrantLock;
            astore 3 /* lock */
        start local 3 // java.util.concurrent.locks.ReentrantLock lock
         7: .line 357
            aload 3 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         8: .line 359
            iconst_0
            istore 4 /* n */
        start local 4 // int n
         9: .line 360
            goto 15
        10: .line 361
      StackMap locals: java.util.concurrent.locks.ReentrantLock int
      StackMap stack:
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.peek:()Ljava/lang/Object;
            checkcast java.util.concurrent.Delayed
            astore 5 /* first */
        start local 5 // java.util.concurrent.Delayed first
        11: .line 362
            aload 5 /* first */
            ifnull 16
            aload 5 /* first */
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.Delayed.getDelay:(Ljava/util/concurrent/TimeUnit;)J
            lconst_0
            lcmp
            ifle 13
        12: .line 363
            goto 16
        13: .line 364
      StackMap locals: java.util.concurrent.Delayed
      StackMap stack:
            aload 1 /* c */
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.poll:()Ljava/lang/Object;
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        14: .line 365
            iinc 4 /* n */ 1
        end local 5 // java.util.concurrent.Delayed first
        15: .line 360
      StackMap locals:
      StackMap stack:
            iload 4 /* n */
            iload 2 /* maxElements */
            if_icmplt 10
        16: .line 367
      StackMap locals:
      StackMap stack:
            iload 4 /* n */
            istore 7
        17: .line 369
            aload 3 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        18: .line 367
            iload 7
            ireturn
        end local 4 // int n
        19: .line 368
      StackMap locals: java.util.concurrent.DelayQueue java.util.Collection int java.util.concurrent.locks.ReentrantLock
      StackMap stack: java.lang.Throwable
            astore 6
        20: .line 369
            aload 3 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        21: .line 370
            aload 6
            athrow
        end local 3 // java.util.concurrent.locks.ReentrantLock lock
        end local 2 // int maxElements
        end local 1 // java.util.Collection c
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   22     0         this  Ljava/util/concurrent/DelayQueue<TE;>;
            0   22     1            c  Ljava/util/Collection<-TE;>;
            0   22     2  maxElements  I
            7   22     3         lock  Ljava/util/concurrent/locks/ReentrantLock;
            9   19     4            n  I
           11   15     5        first  TE;
      Exception table:
        from    to  target  type
           8    17      19  any
    Signature: (Ljava/util/Collection<-TE;>;I)I
    MethodParameters:
             Name  Flags
      c            
      maxElements  

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // java.util.concurrent.DelayQueue this
         0: .line 380
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.lock:Ljava/util/concurrent/locks/ReentrantLock;
            astore 1 /* lock */
        start local 1 // java.util.concurrent.locks.ReentrantLock lock
         1: .line 381
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 383
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.clear:()V
         3: .line 384
            goto 7
      StackMap locals: java.util.concurrent.DelayQueue java.util.concurrent.locks.ReentrantLock
      StackMap stack: java.lang.Throwable
         4: astore 2
         5: .line 385
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 386
            aload 2
            athrow
         7: .line 385
      StackMap locals:
      StackMap stack:
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         8: .line 387
            return
        end local 1 // java.util.concurrent.locks.ReentrantLock lock
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljava/util/concurrent/DelayQueue<TE;>;
            1    9     1  lock  Ljava/util/concurrent/locks/ReentrantLock;
      Exception table:
        from    to  target  type
           2     4       4  any

  public int remainingCapacity();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.concurrent.DelayQueue this
         0: .line 396
            ldc 2147483647
            ireturn
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/concurrent/DelayQueue<TE;>;

  public java.lang.Object[] toArray();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=1
        start local 0 // java.util.concurrent.DelayQueue this
         0: .line 413
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.lock:Ljava/util/concurrent/locks/ReentrantLock;
            astore 1 /* lock */
        start local 1 // java.util.concurrent.locks.ReentrantLock lock
         1: .line 414
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 416
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            invokevirtual java.util.PriorityQueue.toArray:()[Ljava/lang/Object;
            astore 3
         3: .line 418
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         4: .line 416
            aload 3
            areturn
         5: .line 417
      StackMap locals: java.util.concurrent.DelayQueue java.util.concurrent.locks.ReentrantLock
      StackMap stack: java.lang.Throwable
            astore 2
         6: .line 418
            aload 1 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 419
            aload 2
            athrow
        end local 1 // java.util.concurrent.locks.ReentrantLock lock
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljava/util/concurrent/DelayQueue<TE;>;
            1    8     1  lock  Ljava/util/concurrent/locks/ReentrantLock;
      Exception table:
        from    to  target  type
           2     3       5  any

  public <T> T[] toArray();
    descriptor: ([Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // java.util.concurrent.DelayQueue this
        start local 1 // java.lang.Object[] a
         0: .line 459
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.lock:Ljava/util/concurrent/locks/ReentrantLock;
            astore 2 /* lock */
        start local 2 // java.util.concurrent.locks.ReentrantLock lock
         1: .line 460
            aload 2 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 462
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            aload 1 /* a */
            invokevirtual java.util.PriorityQueue.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            astore 4
         3: .line 464
            aload 2 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         4: .line 462
            aload 4
            areturn
         5: .line 463
      StackMap locals: java.util.concurrent.DelayQueue java.lang.Object[] java.util.concurrent.locks.ReentrantLock
      StackMap stack: java.lang.Throwable
            astore 3
         6: .line 464
            aload 2 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 465
            aload 3
            athrow
        end local 2 // java.util.concurrent.locks.ReentrantLock lock
        end local 1 // java.lang.Object[] a
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljava/util/concurrent/DelayQueue<TE;>;
            0    8     1     a  [Ljava/lang/Object;
            1    8     2  lock  Ljava/util/concurrent/locks/ReentrantLock;
      Exception table:
        from    to  target  type
           2     3       5  any
    Signature: <T:Ljava/lang/Object;>([TT;)[TT;
    MethodParameters:
      Name  Flags
      a     

  public boolean remove(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // java.util.concurrent.DelayQueue this
        start local 1 // java.lang.Object o
         0: .line 473
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.lock:Ljava/util/concurrent/locks/ReentrantLock;
            astore 2 /* lock */
        start local 2 // java.util.concurrent.locks.ReentrantLock lock
         1: .line 474
            aload 2 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 476
            aload 0 /* this */
            getfield java.util.concurrent.DelayQueue.q:Ljava/util/PriorityQueue;
            aload 1 /* o */
            invokevirtual java.util.PriorityQueue.remove:(Ljava/lang/Object;)Z
            istore 4
         3: .line 478
            aload 2 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         4: .line 476
            iload 4
            ireturn
         5: .line 477
      StackMap locals: java.util.concurrent.DelayQueue java.lang.Object java.util.concurrent.locks.ReentrantLock
      StackMap stack: java.lang.Throwable
            astore 3
         6: .line 478
            aload 2 /* lock */
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 479
            aload 3
            athrow
        end local 2 // java.util.concurrent.locks.ReentrantLock lock
        end local 1 // java.lang.Object o
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljava/util/concurrent/DelayQueue<TE;>;
            0    8     1     o  Ljava/lang/Object;
            1    8     2  lock  Ljava/util/concurrent/locks/ReentrantLock;
      Exception table:
        from    to  target  type
           2     3       5  any
    MethodParameters:
      Name  Flags
      o     

  public java.util.Iterator<E> iterator();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.util.concurrent.DelayQueue this
         0: .line 497
            new java.util.concurrent.DelayQueue$Itr
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.util.concurrent.DelayQueue.toArray:()[Ljava/lang/Object;
            invokespecial java.util.concurrent.DelayQueue$Itr.<init>:(Ljava/util/concurrent/DelayQueue;[Ljava/lang/Object;)V
            areturn
        end local 0 // java.util.concurrent.DelayQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/concurrent/DelayQueue<TE;>;
    Signature: ()Ljava/util/Iterator<TE;>;

  public java.lang.Object poll(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=3
         0: .line 1
            aload 0
            lload 1
            aload 3
            invokevirtual java.util.concurrent.DelayQueue.poll:(JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/Delayed;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.InterruptedException

  public java.lang.Object poll();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual java.util.concurrent.DelayQueue.poll:()Ljava/util/concurrent/Delayed;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object peek();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual java.util.concurrent.DelayQueue.peek:()Ljava/util/concurrent/Delayed;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public boolean offer(java.lang.Object, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Z
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=4
         0: .line 1
            aload 0
            aload 1
            checkcast java.util.concurrent.Delayed
            lload 2
            aload 4
            invokevirtual java.util.concurrent.DelayQueue.offer:(Ljava/util/concurrent/Delayed;JLjava/util/concurrent/TimeUnit;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.InterruptedException

  public boolean offer(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast java.util.concurrent.Delayed
            invokevirtual java.util.concurrent.DelayQueue.offer:(Ljava/util/concurrent/Delayed;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void put(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast java.util.concurrent.Delayed
            invokevirtual java.util.concurrent.DelayQueue.put:(Ljava/util/concurrent/Delayed;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.InterruptedException

  public java.lang.Object take();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual java.util.concurrent.DelayQueue.take:()Ljava/util/concurrent/Delayed;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.InterruptedException

  public boolean add(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast java.util.concurrent.Delayed
            invokevirtual java.util.concurrent.DelayQueue.add:(Ljava/util/concurrent/Delayed;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: <E::Ljava/util/concurrent/Delayed;>Ljava/util/AbstractQueue<TE;>;Ljava/util/concurrent/BlockingQueue<TE;>;
SourceFile: "DelayQueue.java"
NestMembers:
  java.util.concurrent.DelayQueue$Itr
InnerClasses:
  private Itr = java.util.concurrent.DelayQueue$Itr of java.util.concurrent.DelayQueue