class org.xnio.nio.WorkerThread$RepeatKey implements org.xnio.XnioExecutor$Key, java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.xnio.nio.WorkerThread$RepeatKey
  super_class: java.lang.Object
{
  private final java.lang.Runnable command;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long millis;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.atomic.AtomicReference<org.xnio.XnioExecutor$Key> current;
    descriptor: Ljava/util/concurrent/atomic/AtomicReference;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicReference<Lorg/xnio/XnioExecutor$Key;>;

  final org.xnio.nio.WorkerThread this$0;
    descriptor: Lorg/xnio/nio/WorkerThread;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 671
            ldc Lorg/xnio/nio/WorkerThread;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.xnio.nio.WorkerThread$RepeatKey.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(org.xnio.nio.WorkerThread, java.lang.Runnable, long);
    descriptor: (Lorg/xnio/nio/WorkerThread;Ljava/lang/Runnable;J)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // org.xnio.nio.WorkerThread$RepeatKey this
        start local 2 // java.lang.Runnable command
        start local 3 // long millis
         0: .line 676
            aload 0 /* this */
            aload 1
            putfield org.xnio.nio.WorkerThread$RepeatKey.this$0:Lorg/xnio/nio/WorkerThread;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 674
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicReference
            dup
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
            putfield org.xnio.nio.WorkerThread$RepeatKey.current:Ljava/util/concurrent/atomic/AtomicReference;
         2: .line 677
            aload 0 /* this */
            aload 2 /* command */
            putfield org.xnio.nio.WorkerThread$RepeatKey.command:Ljava/lang/Runnable;
         3: .line 678
            aload 0 /* this */
            lload 3 /* millis */
            putfield org.xnio.nio.WorkerThread$RepeatKey.millis:J
         4: .line 679
            return
        end local 3 // long millis
        end local 2 // java.lang.Runnable command
        end local 0 // org.xnio.nio.WorkerThread$RepeatKey this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/xnio/nio/WorkerThread$RepeatKey;
            0    5     2  command  Ljava/lang/Runnable;
            0    5     3   millis  J
    MethodParameters:
         Name  Flags
      this$0   final
      command  final
      millis   final

  public boolean remove();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.xnio.nio.WorkerThread$RepeatKey this
         0: .line 682
            aload 0 /* this */
            getfield org.xnio.nio.WorkerThread$RepeatKey.current:Ljava/util/concurrent/atomic/AtomicReference;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicReference.getAndSet:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.xnio.XnioExecutor$Key
            astore 1 /* removed */
        start local 1 // org.xnio.XnioExecutor$Key removed
         1: .line 684
            getstatic org.xnio.nio.WorkerThread$RepeatKey.$assertionsDisabled:Z
            ifne 2
            aload 1 /* removed */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 685
      StackMap locals: org.xnio.XnioExecutor$Key
      StackMap stack:
            aload 1 /* removed */
            aload 0 /* this */
            if_acmpeq 3
            aload 1 /* removed */
            invokeinterface org.xnio.XnioExecutor$Key.remove:()Z
            ifeq 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // org.xnio.XnioExecutor$Key removed
        end local 0 // org.xnio.nio.WorkerThread$RepeatKey this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/xnio/nio/WorkerThread$RepeatKey;
            1    4     1  removed  Lorg/xnio/XnioExecutor$Key;

  void setFirst(org.xnio.XnioExecutor$Key);
    descriptor: (Lorg/xnio/XnioExecutor$Key;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.xnio.nio.WorkerThread$RepeatKey this
        start local 1 // org.xnio.XnioExecutor$Key key
         0: .line 689
            aload 0 /* this */
            getfield org.xnio.nio.WorkerThread$RepeatKey.current:Ljava/util/concurrent/atomic/AtomicReference;
            aconst_null
            aload 1 /* key */
            invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
         1: .line 690
            return
        end local 1 // org.xnio.XnioExecutor$Key key
        end local 0 // org.xnio.nio.WorkerThread$RepeatKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/xnio/nio/WorkerThread$RepeatKey;
            0    2     1   key  Lorg/xnio/XnioExecutor$Key;
    MethodParameters:
      Name  Flags
      key   

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // org.xnio.nio.WorkerThread$RepeatKey this
         0: .line 694
            aload 0 /* this */
            getfield org.xnio.nio.WorkerThread$RepeatKey.command:Ljava/lang/Runnable;
            invokeinterface java.lang.Runnable.run:()V
         1: .line 695
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 1
         3: .line 697
            aload 0 /* this */
            getfield org.xnio.nio.WorkerThread$RepeatKey.current:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast org.xnio.XnioExecutor$Key
            astore 2 /* o */
        start local 2 // org.xnio.XnioExecutor$Key o
         4: .line 698
            aload 2 /* o */
            aload 0 /* this */
            if_acmpeq 8
         5: .line 699
            aload 0 /* this */
            getfield org.xnio.nio.WorkerThread$RepeatKey.this$0:Lorg/xnio/nio/WorkerThread;
            aload 0 /* this */
            aload 0 /* this */
            getfield org.xnio.nio.WorkerThread$RepeatKey.millis:J
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.xnio.nio.WorkerThread.executeAfter:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lorg/xnio/XnioExecutor$Key;
            astore 3 /* n */
        start local 3 // org.xnio.XnioExecutor$Key n
         6: .line 700
            aload 0 /* this */
            getfield org.xnio.nio.WorkerThread$RepeatKey.current:Ljava/util/concurrent/atomic/AtomicReference;
            aload 2 /* o */
            aload 3 /* n */
            invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 8
         7: .line 701
            aload 3 /* n */
            invokeinterface org.xnio.XnioExecutor$Key.remove:()Z
            pop
        end local 3 // org.xnio.XnioExecutor$Key n
        end local 2 // org.xnio.XnioExecutor$Key o
         8: .line 704
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 1
            athrow
         9: .line 697
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.nio.WorkerThread$RepeatKey.current:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast org.xnio.XnioExecutor$Key
            astore 2 /* o */
        start local 2 // org.xnio.XnioExecutor$Key o
        10: .line 698
            aload 2 /* o */
            aload 0 /* this */
            if_acmpeq 14
        11: .line 699
            aload 0 /* this */
            getfield org.xnio.nio.WorkerThread$RepeatKey.this$0:Lorg/xnio/nio/WorkerThread;
            aload 0 /* this */
            aload 0 /* this */
            getfield org.xnio.nio.WorkerThread$RepeatKey.millis:J
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.xnio.nio.WorkerThread.executeAfter:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lorg/xnio/XnioExecutor$Key;
            astore 3 /* n */
        start local 3 // org.xnio.XnioExecutor$Key n
        12: .line 700
            aload 0 /* this */
            getfield org.xnio.nio.WorkerThread$RepeatKey.current:Ljava/util/concurrent/atomic/AtomicReference;
            aload 2 /* o */
            aload 3 /* n */
            invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifne 14
        13: .line 701
            aload 3 /* n */
            invokeinterface org.xnio.XnioExecutor$Key.remove:()Z
            pop
        end local 3 // org.xnio.XnioExecutor$Key n
        end local 2 // org.xnio.XnioExecutor$Key o
        14: .line 705
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.xnio.nio.WorkerThread$RepeatKey this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lorg/xnio/nio/WorkerThread$RepeatKey;
            4    8     2     o  Lorg/xnio/XnioExecutor$Key;
           10   14     2     o  Lorg/xnio/XnioExecutor$Key;
            6    8     3     n  Lorg/xnio/XnioExecutor$Key;
           12   14     3     n  Lorg/xnio/XnioExecutor$Key;
      Exception table:
        from    to  target  type
           0     2       2  any
}
SourceFile: "WorkerThread.java"
NestHost: org.xnio.nio.WorkerThread
InnerClasses:
  public abstract Key = org.xnio.XnioExecutor$Key of org.xnio.XnioExecutor
  RepeatKey = org.xnio.nio.WorkerThread$RepeatKey of org.xnio.nio.WorkerThread