public abstract class org.eclipse.jetty.io.CyclicTimeout implements org.eclipse.jetty.util.component.Destroyable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.eclipse.jetty.io.CyclicTimeout
  super_class: java.lang.Object
{
  private static final org.eclipse.jetty.util.log.Logger LOG;
    descriptor: Lorg/eclipse/jetty/util/log/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.eclipse.jetty.io.CyclicTimeout$Timeout NOT_SET;
    descriptor: Lorg/eclipse/jetty/io/CyclicTimeout$Timeout;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.eclipse.jetty.util.thread.Scheduler$Task DESTROYED;
    descriptor: Lorg/eclipse/jetty/util/thread/Scheduler$Task;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.eclipse.jetty.util.thread.Scheduler _scheduler;
    descriptor: Lorg/eclipse/jetty/util/thread/Scheduler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.atomic.AtomicReference<org.eclipse.jetty.io.CyclicTimeout$Timeout> _timeout;
    descriptor: Ljava/util/concurrent/atomic/AtomicReference;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicReference<Lorg/eclipse/jetty/io/CyclicTimeout$Timeout;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 53
            ldc Lorg/eclipse/jetty/io/CyclicTimeout;
            invokestatic org.eclipse.jetty.util.log.Log.getLogger:(Ljava/lang/Class;)Lorg/eclipse/jetty/util/log/Logger;
            putstatic org.eclipse.jetty.io.CyclicTimeout.LOG:Lorg/eclipse/jetty/util/log/Logger;
         1: .line 54
            new org.eclipse.jetty.io.CyclicTimeout$Timeout
            dup
            ldc 9223372036854775807
            aconst_null
            invokespecial org.eclipse.jetty.io.CyclicTimeout$Timeout.<init>:(JLorg/eclipse/jetty/io/CyclicTimeout$Wakeup;)V
            putstatic org.eclipse.jetty.io.CyclicTimeout.NOT_SET:Lorg/eclipse/jetty/io/CyclicTimeout$Timeout;
         2: .line 55
            invokedynamic cancel()Lorg/eclipse/jetty/util/thread/Scheduler$Task;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Z
                  org/eclipse/jetty/io/CyclicTimeout.lambda$0()Z (6)
                  ()Z
            putstatic org.eclipse.jetty.io.CyclicTimeout.DESTROYED:Lorg/eclipse/jetty/util/thread/Scheduler$Task;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.eclipse.jetty.util.thread.Scheduler);
    descriptor: (Lorg/eclipse/jetty/util/thread/Scheduler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.eclipse.jetty.io.CyclicTimeout this
        start local 1 // org.eclipse.jetty.util.thread.Scheduler scheduler
         0: .line 65
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 60
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicReference
            dup
            getstatic org.eclipse.jetty.io.CyclicTimeout.NOT_SET:Lorg/eclipse/jetty/io/CyclicTimeout$Timeout;
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
            putfield org.eclipse.jetty.io.CyclicTimeout._timeout:Ljava/util/concurrent/atomic/AtomicReference;
         2: .line 67
            aload 0 /* this */
            aload 1 /* scheduler */
            putfield org.eclipse.jetty.io.CyclicTimeout._scheduler:Lorg/eclipse/jetty/util/thread/Scheduler;
         3: .line 68
            return
        end local 1 // org.eclipse.jetty.util.thread.Scheduler scheduler
        end local 0 // org.eclipse.jetty.io.CyclicTimeout this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/eclipse/jetty/io/CyclicTimeout;
            0    4     1  scheduler  Lorg/eclipse/jetty/util/thread/Scheduler;
    MethodParameters:
           Name  Flags
      scheduler  

  public org.eclipse.jetty.util.thread.Scheduler getScheduler();
    descriptor: ()Lorg/eclipse/jetty/util/thread/Scheduler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jetty.io.CyclicTimeout this
         0: .line 72
            aload 0 /* this */
            getfield org.eclipse.jetty.io.CyclicTimeout._scheduler:Lorg/eclipse/jetty/util/thread/Scheduler;
            areturn
        end local 0 // org.eclipse.jetty.io.CyclicTimeout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jetty/io/CyclicTimeout;

  public boolean schedule(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=12, args_size=3
        start local 0 // org.eclipse.jetty.io.CyclicTimeout this
        start local 1 // long delay
        start local 3 // java.util.concurrent.TimeUnit units
         0: .line 86
            invokestatic java.lang.System.nanoTime:()J
            lstore 4 /* now */
        start local 4 // long now
         1: .line 87
            lload 4 /* now */
            aload 3 /* units */
            lload 1 /* delay */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            ladd
            lstore 6 /* newTimeoutAt */
        start local 6 // long newTimeoutAt
         2: .line 89
            aconst_null
            astore 8 /* newWakeup */
        start local 8 // org.eclipse.jetty.io.CyclicTimeout$Wakeup newWakeup
         3: .line 93
      StackMap locals: long long org.eclipse.jetty.io.CyclicTimeout$Wakeup
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jetty.io.CyclicTimeout._timeout:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast org.eclipse.jetty.io.CyclicTimeout$Timeout
            astore 10 /* timeout */
        start local 10 // org.eclipse.jetty.io.CyclicTimeout$Timeout timeout
         4: .line 94
            aload 10 /* timeout */
            getfield org.eclipse.jetty.io.CyclicTimeout$Timeout._at:J
            ldc 9223372036854775807
            lcmp
            ifeq 5
            iconst_1
            goto 6
      StackMap locals: org.eclipse.jetty.io.CyclicTimeout long java.util.concurrent.TimeUnit long long org.eclipse.jetty.io.CyclicTimeout$Wakeup top org.eclipse.jetty.io.CyclicTimeout$Timeout
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 9 /* result */
        start local 9 // boolean result
         7: .line 97
            aload 10 /* timeout */
            getfield org.eclipse.jetty.io.CyclicTimeout$Timeout._wakeup:Lorg/eclipse/jetty/io/CyclicTimeout$Wakeup;
            astore 11 /* wakeup */
        start local 11 // org.eclipse.jetty.io.CyclicTimeout$Wakeup wakeup
         8: .line 98
            aload 11 /* wakeup */
            ifnull 9
            aload 11 /* wakeup */
            getfield org.eclipse.jetty.io.CyclicTimeout$Wakeup._at:J
            lload 6 /* newTimeoutAt */
            lcmp
            ifle 10
         9: .line 100
      StackMap locals: org.eclipse.jetty.io.CyclicTimeout long java.util.concurrent.TimeUnit long long org.eclipse.jetty.io.CyclicTimeout$Wakeup int org.eclipse.jetty.io.CyclicTimeout$Timeout org.eclipse.jetty.io.CyclicTimeout$Wakeup
      StackMap stack:
            new org.eclipse.jetty.io.CyclicTimeout$Wakeup
            dup
            aload 0 /* this */
            lload 6 /* newTimeoutAt */
            aload 11 /* wakeup */
            invokespecial org.eclipse.jetty.io.CyclicTimeout$Wakeup.<init>:(Lorg/eclipse/jetty/io/CyclicTimeout;JLorg/eclipse/jetty/io/CyclicTimeout$Wakeup;)V
            dup
            astore 8 /* newWakeup */
            astore 11 /* wakeup */
        10: .line 102
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jetty.io.CyclicTimeout._timeout:Ljava/util/concurrent/atomic/AtomicReference;
            aload 10 /* timeout */
            new org.eclipse.jetty.io.CyclicTimeout$Timeout
            dup
            lload 6 /* newTimeoutAt */
            aload 11 /* wakeup */
            invokespecial org.eclipse.jetty.io.CyclicTimeout$Timeout.<init>:(JLorg/eclipse/jetty/io/CyclicTimeout$Wakeup;)V
            invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 3
        11: .line 104
            getstatic org.eclipse.jetty.io.CyclicTimeout.LOG:Lorg/eclipse/jetty/util/log/Logger;
            invokeinterface org.eclipse.jetty.util.log.Logger.isDebugEnabled:()Z
            ifeq 16
        12: .line 105
            getstatic org.eclipse.jetty.io.CyclicTimeout.LOG:Lorg/eclipse/jetty/util/log/Logger;
            ldc "Installed timeout in {} ms, waking up in {} ms"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        13: .line 106
            aload 3 /* units */
            lload 1 /* delay */
            invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
        14: .line 107
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            aload 11 /* wakeup */
            getfield org.eclipse.jetty.io.CyclicTimeout$Wakeup._at:J
            lload 4 /* now */
            lsub
            invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
        15: .line 105
            invokeinterface org.eclipse.jetty.util.log.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 11 // org.eclipse.jetty.io.CyclicTimeout$Wakeup wakeup
        end local 10 // org.eclipse.jetty.io.CyclicTimeout$Timeout timeout
        16: .line 115
      StackMap locals:
      StackMap stack:
            aload 8 /* newWakeup */
            ifnull 18
        17: .line 116
            aload 8 /* newWakeup */
            lload 4 /* now */
            invokevirtual org.eclipse.jetty.io.CyclicTimeout$Wakeup.schedule:(J)V
        18: .line 118
      StackMap locals:
      StackMap stack:
            iload 9 /* result */
            ireturn
        end local 9 // boolean result
        end local 8 // org.eclipse.jetty.io.CyclicTimeout$Wakeup newWakeup
        end local 6 // long newTimeoutAt
        end local 4 // long now
        end local 3 // java.util.concurrent.TimeUnit units
        end local 1 // long delay
        end local 0 // org.eclipse.jetty.io.CyclicTimeout this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   19     0          this  Lorg/eclipse/jetty/io/CyclicTimeout;
            0   19     1         delay  J
            0   19     3         units  Ljava/util/concurrent/TimeUnit;
            1   19     4           now  J
            2   19     6  newTimeoutAt  J
            3   19     8     newWakeup  Lorg/eclipse/jetty/io/CyclicTimeout$Wakeup;
            7   19     9        result  Z
            4   16    10       timeout  Lorg/eclipse/jetty/io/CyclicTimeout$Timeout;
            8   16    11        wakeup  Lorg/eclipse/jetty/io/CyclicTimeout$Wakeup;
    MethodParameters:
       Name  Flags
      delay  
      units  

  public boolean cancel();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.eclipse.jetty.io.CyclicTimeout this
         0: .line 133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jetty.io.CyclicTimeout._timeout:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast org.eclipse.jetty.io.CyclicTimeout$Timeout
            astore 2 /* timeout */
        start local 2 // org.eclipse.jetty.io.CyclicTimeout$Timeout timeout
         1: .line 134
            aload 2 /* timeout */
            getfield org.eclipse.jetty.io.CyclicTimeout$Timeout._at:J
            ldc 9223372036854775807
            lcmp
            ifeq 2
            iconst_1
            goto 3
      StackMap locals: org.eclipse.jetty.io.CyclicTimeout top org.eclipse.jetty.io.CyclicTimeout$Timeout
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 1 /* result */
        start local 1 // boolean result
         4: .line 135
            aload 2 /* timeout */
            getfield org.eclipse.jetty.io.CyclicTimeout$Timeout._wakeup:Lorg/eclipse/jetty/io/CyclicTimeout$Wakeup;
            astore 3 /* wakeup */
        start local 3 // org.eclipse.jetty.io.CyclicTimeout$Wakeup wakeup
         5: .line 136
            aload 3 /* wakeup */
            ifnonnull 6
            getstatic org.eclipse.jetty.io.CyclicTimeout.NOT_SET:Lorg/eclipse/jetty/io/CyclicTimeout$Timeout;
            goto 7
      StackMap locals: org.eclipse.jetty.io.CyclicTimeout int org.eclipse.jetty.io.CyclicTimeout$Timeout org.eclipse.jetty.io.CyclicTimeout$Wakeup
      StackMap stack:
         6: new org.eclipse.jetty.io.CyclicTimeout$Timeout
            dup
            ldc 9223372036854775807
            aload 3 /* wakeup */
            invokespecial org.eclipse.jetty.io.CyclicTimeout$Timeout.<init>:(JLorg/eclipse/jetty/io/CyclicTimeout$Wakeup;)V
      StackMap locals:
      StackMap stack: org.eclipse.jetty.io.CyclicTimeout$Timeout
         7: astore 4 /* newTimeout */
        start local 4 // org.eclipse.jetty.io.CyclicTimeout$Timeout newTimeout
         8: .line 137
            aload 0 /* this */
            getfield org.eclipse.jetty.io.CyclicTimeout._timeout:Ljava/util/concurrent/atomic/AtomicReference;
            aload 2 /* timeout */
            aload 4 /* newTimeout */
            invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 0
        end local 4 // org.eclipse.jetty.io.CyclicTimeout$Timeout newTimeout
        end local 3 // org.eclipse.jetty.io.CyclicTimeout$Wakeup wakeup
        end local 2 // org.eclipse.jetty.io.CyclicTimeout$Timeout timeout
         9: .line 140
            iload 1 /* result */
            ireturn
        end local 1 // boolean result
        end local 0 // org.eclipse.jetty.io.CyclicTimeout this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lorg/eclipse/jetty/io/CyclicTimeout;
            4   10     1      result  Z
            1    9     2     timeout  Lorg/eclipse/jetty/io/CyclicTimeout$Timeout;
            5    9     3      wakeup  Lorg/eclipse/jetty/io/CyclicTimeout$Wakeup;
            8    9     4  newTimeout  Lorg/eclipse/jetty/io/CyclicTimeout$Timeout;

  public abstract void onTimeoutExpired();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public void destroy();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.eclipse.jetty.io.CyclicTimeout this
         0: .line 155
            aload 0 /* this */
            getfield org.eclipse.jetty.io.CyclicTimeout._timeout:Ljava/util/concurrent/atomic/AtomicReference;
            getstatic org.eclipse.jetty.io.CyclicTimeout.NOT_SET:Lorg/eclipse/jetty/io/CyclicTimeout$Timeout;
            invokevirtual java.util.concurrent.atomic.AtomicReference.getAndSet:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jetty.io.CyclicTimeout$Timeout
            astore 1 /* timeout */
        start local 1 // org.eclipse.jetty.io.CyclicTimeout$Timeout timeout
         1: .line 156
            aload 1 /* timeout */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: org.eclipse.jetty.io.CyclicTimeout$Timeout
      StackMap stack:
         2: aload 1 /* timeout */
            getfield org.eclipse.jetty.io.CyclicTimeout$Timeout._wakeup:Lorg/eclipse/jetty/io/CyclicTimeout$Wakeup;
      StackMap locals:
      StackMap stack: org.eclipse.jetty.io.CyclicTimeout$Wakeup
         3: astore 2 /* wakeup */
        start local 2 // org.eclipse.jetty.io.CyclicTimeout$Wakeup wakeup
         4: .line 157
            goto 7
         5: .line 159
      StackMap locals: org.eclipse.jetty.io.CyclicTimeout$Wakeup
      StackMap stack:
            aload 2 /* wakeup */
            invokevirtual org.eclipse.jetty.io.CyclicTimeout$Wakeup.destroy:()V
         6: .line 160
            aload 2 /* wakeup */
            getfield org.eclipse.jetty.io.CyclicTimeout$Wakeup._next:Lorg/eclipse/jetty/io/CyclicTimeout$Wakeup;
            astore 2 /* wakeup */
         7: .line 157
      StackMap locals:
      StackMap stack:
            aload 2 /* wakeup */
            ifnonnull 5
         8: .line 162
            return
        end local 2 // org.eclipse.jetty.io.CyclicTimeout$Wakeup wakeup
        end local 1 // org.eclipse.jetty.io.CyclicTimeout$Timeout timeout
        end local 0 // org.eclipse.jetty.io.CyclicTimeout this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lorg/eclipse/jetty/io/CyclicTimeout;
            1    9     1  timeout  Lorg/eclipse/jetty/io/CyclicTimeout$Timeout;
            4    9     2   wakeup  Lorg/eclipse/jetty/io/CyclicTimeout$Wakeup;

  private static boolean lambda$0();
    descriptor: ()Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 55
            iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "CyclicTimeout.java"
NestMembers:
  org.eclipse.jetty.io.CyclicTimeout$Timeout  org.eclipse.jetty.io.CyclicTimeout$Wakeup
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  private Timeout = org.eclipse.jetty.io.CyclicTimeout$Timeout of org.eclipse.jetty.io.CyclicTimeout
  private Wakeup = org.eclipse.jetty.io.CyclicTimeout$Wakeup of org.eclipse.jetty.io.CyclicTimeout
  public abstract Task = org.eclipse.jetty.util.thread.Scheduler$Task of org.eclipse.jetty.util.thread.Scheduler