public final class com.lmax.disruptor.util.ThreadHints
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.lmax.disruptor.util.ThreadHints
  super_class: java.lang.Object
{
  private static final java.lang.invoke.MethodHandle ON_SPIN_WAIT_METHOD_HANDLE;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=0
         0: .line 37
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            astore 0 /* lookup */
        start local 0 // java.lang.invoke.MethodHandles$Lookup lookup
         1: .line 39
            aconst_null
            astore 1 /* methodHandle */
        start local 1 // java.lang.invoke.MethodHandle methodHandle
         2: .line 42
            aload 0 /* lookup */
            ldc Ljava/lang/Thread;
            ldc "onSpinWait"
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 1 /* methodHandle */
         3: .line 43
            goto 5
         4: .line 44
      StackMap locals: java.lang.invoke.MethodHandles$Lookup java.lang.invoke.MethodHandle
      StackMap stack: java.lang.Exception
            pop
         5: .line 48
      StackMap locals:
      StackMap stack:
            aload 1 /* methodHandle */
            putstatic com.lmax.disruptor.util.ThreadHints.ON_SPIN_WAIT_METHOD_HANDLE:Ljava/lang/invoke/MethodHandle;
        end local 1 // java.lang.invoke.MethodHandle methodHandle
        end local 0 // java.lang.invoke.MethodHandles$Lookup lookup
         6: .line 49
            return
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            1    6     0        lookup  Ljava/lang/invoke/MethodHandles$Lookup;
            2    6     1  methodHandle  Ljava/lang/invoke/MethodHandle;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Exception

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.lmax.disruptor.util.ThreadHints this
         0: .line 51
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 53
            return
        end local 0 // com.lmax.disruptor.util.ThreadHints this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/lmax/disruptor/util/ThreadHints;

  public static void onSpinWait();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 66
            getstatic com.lmax.disruptor.util.ThreadHints.ON_SPIN_WAIT_METHOD_HANDLE:Ljava/lang/invoke/MethodHandle;
            ifnull 4
         1: .line 70
            getstatic com.lmax.disruptor.util.ThreadHints.ON_SPIN_WAIT_METHOD_HANDLE:Ljava/lang/invoke/MethodHandle;
            invokevirtual java.lang.invoke.MethodHandle.invokeExact:()V
         2: .line 71
            goto 4
         3: .line 72
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
         4: .line 76
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
}
SourceFile: "ThreadHints.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles