class org.graalvm.compiler.hotspot.CompilationWatchDog extends java.lang.Thread implements java.lang.AutoCloseable
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.CompilationWatchDog
  super_class: java.lang.Thread
{
  private static final int SPIN_TIMEOUT_MS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1000

  private org.graalvm.compiler.hotspot.CompilationWatchDog$WatchDogState state;
    descriptor: Lorg/graalvm/compiler/hotspot/CompilationWatchDog$WatchDogState;
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.Thread compilerThread;
    descriptor: Ljava/lang/Thread;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private final int nonFatalIdenticalCompilationSnapshots;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile jdk.vm.ci.meta.ResolvedJavaMethod currentMethod;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int currentId;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private jdk.vm.ci.meta.ResolvedJavaMethod lastWatched;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0002) ACC_PRIVATE

  private long elapsed;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private int traceIntervals;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int numberOfIdenticalStackTraces;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.lang.StackTraceElement[] lastStackTrace;
    descriptor: [Ljava/lang/StackTraceElement;
    flags: (0x0002) ACC_PRIVATE

  private static final boolean DEBUG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.ThreadLocal<org.graalvm.compiler.hotspot.CompilationWatchDog> WATCH_DOGS;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Lorg/graalvm/compiler/hotspot/CompilationWatchDog;>;

  private static volatile int[] $SWITCH_TABLE$org$graalvm$compiler$hotspot$CompilationWatchDog$WatchDogState;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 169
            ldc "debug.graal.CompilationWatchDog"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            putstatic org.graalvm.compiler.hotspot.CompilationWatchDog.DEBUG:Z
         1: .line 289
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
            putstatic org.graalvm.compiler.hotspot.CompilationWatchDog.WATCH_DOGS:Ljava/lang/ThreadLocal;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.lang.Thread, long, long, int);
    descriptor: (Ljava/lang/Thread;JJI)V
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
        start local 1 // java.lang.Thread compilerThread
        start local 2 // long startDelayMilliseconds
        start local 4 // long stackTraceIntervalMilliseconds
        start local 6 // int nonFatalIdenticalCompilationSnapshots
         0: .line 112
            aload 0 /* this */
            invokespecial java.lang.Thread.<init>:()V
         1: .line 97
            aload 0 /* this */
            getstatic org.graalvm.compiler.hotspot.CompilationWatchDog$WatchDogState.SLEEPING:Lorg/graalvm/compiler/hotspot/CompilationWatchDog$WatchDogState;
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.state:Lorg/graalvm/compiler/hotspot/CompilationWatchDog$WatchDogState;
         2: .line 113
            aload 0 /* this */
            aload 1 /* compilerThread */
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.compilerThread:Ljava/lang/Thread;
         3: .line 114
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "WatchDog"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.getId:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* compilerThread */
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.setName:(Ljava/lang/String;)V
         4: .line 115
            aload 0 /* this */
            bipush 10
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.setPriority:(I)V
         5: .line 116
            aload 0 /* this */
            iconst_1
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.setDaemon:(Z)V
         6: .line 117
            aload 0 /* this */
            lload 2 /* startDelayMilliseconds */
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.startDelayMilliseconds:J
         7: .line 118
            aload 0 /* this */
            lload 4 /* stackTraceIntervalMilliseconds */
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.stackTraceIntervalMilliseconds:J
         8: .line 119
            aload 0 /* this */
            iload 6 /* nonFatalIdenticalCompilationSnapshots */
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.nonFatalIdenticalCompilationSnapshots:I
         9: .line 120
            return
        end local 6 // int nonFatalIdenticalCompilationSnapshots
        end local 4 // long stackTraceIntervalMilliseconds
        end local 2 // long startDelayMilliseconds
        end local 1 // java.lang.Thread compilerThread
        end local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
      LocalVariableTable:
        Start  End  Slot                                   Name  Signature
            0   10     0                                   this  Lorg/graalvm/compiler/hotspot/CompilationWatchDog;
            0   10     1                         compilerThread  Ljava/lang/Thread;
            0   10     2                 startDelayMilliseconds  J
            0   10     4         stackTraceIntervalMilliseconds  J
            0   10     6  nonFatalIdenticalCompilationSnapshots  I
    MethodParameters:
                                       Name  Flags
      compilerThread                         
      startDelayMilliseconds                 
      stackTraceIntervalMilliseconds         
      nonFatalIdenticalCompilationSnapshots  

  public void startCompilation(jdk.vm.ci.meta.ResolvedJavaMethod, int);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        start local 2 // int id
         0: .line 123
            aload 0 /* this */
            ldc "start %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* method */
            invokestatic org.graalvm.compiler.hotspot.HotSpotGraalCompiler.fmt:(Ljava/lang/Object;)Ljava/util/Formattable;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 124
            aload 0 /* this */
            aload 1 /* method */
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.currentMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
         2: .line 125
            aload 0 /* this */
            iload 2 /* id */
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.currentId:I
         3: .line 126
            return
        end local 2 // int id
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/graalvm/compiler/hotspot/CompilationWatchDog;
            0    4     1  method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    4     2      id  I
    MethodParameters:
        Name  Flags
      method  
      id      

  public void stopCompilation();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
         0: .line 129
            aload 0 /* this */
            ldc " stop %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.currentMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokestatic org.graalvm.compiler.hotspot.HotSpotGraalCompiler.fmt:(Ljava/lang/Object;)Ljava/util/Formattable;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 130
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.currentMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
         2: .line 131
            return
        end local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/hotspot/CompilationWatchDog;

  private void reset();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
         0: .line 134
            aload 0 /* this */
            lconst_0
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.elapsed:J
         1: .line 135
            aload 0 /* this */
            iconst_0
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.traceIntervals:I
         2: .line 136
            aload 0 /* this */
            iconst_0
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.numberOfIdenticalStackTraces:I
         3: .line 137
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.lastWatched:Ljdk/vm/ci/meta/ResolvedJavaMethod;
         4: .line 138
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.lastStackTrace:[Ljava/lang/StackTraceElement;
         5: .line 139
            aload 0 /* this */
            getstatic org.graalvm.compiler.hotspot.CompilationWatchDog$WatchDogState.SLEEPING:Lorg/graalvm/compiler/hotspot/CompilationWatchDog$WatchDogState;
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.state:Lorg/graalvm/compiler/hotspot/CompilationWatchDog$WatchDogState;
         6: .line 140
            return
        end local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/graalvm/compiler/hotspot/CompilationWatchDog;

  private void tick(org.graalvm.compiler.hotspot.CompilationWatchDog$WatchDogState);
    descriptor: (Lorg/graalvm/compiler/hotspot/CompilationWatchDog$WatchDogState;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
        start local 1 // org.graalvm.compiler.hotspot.CompilationWatchDog$WatchDogState newState
         0: .line 143
            aload 0 /* this */
            aload 1 /* newState */
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.state:Lorg/graalvm/compiler/hotspot/CompilationWatchDog$WatchDogState;
         1: .line 144
            return
        end local 1 // org.graalvm.compiler.hotspot.CompilationWatchDog$WatchDogState newState
        end local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/graalvm/compiler/hotspot/CompilationWatchDog;
            0    2     1  newState  Lorg/graalvm/compiler/hotspot/CompilationWatchDog$WatchDogState;
    MethodParameters:
          Name  Flags
      newState  

  private boolean recordStackTrace(java.lang.StackTraceElement[]);
    descriptor: ([Ljava/lang/StackTraceElement;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
        start local 1 // java.lang.StackTraceElement[] newStackTrace
         0: .line 155
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.lastStackTrace:[Ljava/lang/StackTraceElement;
            ifnonnull 3
         1: .line 156
            aload 0 /* this */
            aload 1 /* newStackTrace */
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.lastStackTrace:[Ljava/lang/StackTraceElement;
         2: .line 157
            iconst_1
            ireturn
         3: .line 159
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.lastStackTrace:[Ljava/lang/StackTraceElement;
            aload 1 /* newStackTrace */
            invokestatic java.util.Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z
            ifne 6
         4: .line 160
            aload 0 /* this */
            aload 1 /* newStackTrace */
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.lastStackTrace:[Ljava/lang/StackTraceElement;
         5: .line 161
            iconst_0
            ireturn
         6: .line 163
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // java.lang.StackTraceElement[] newStackTrace
        end local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lorg/graalvm/compiler/hotspot/CompilationWatchDog;
            0    7     1  newStackTrace  [Ljava/lang/StackTraceElement;
    MethodParameters:
               Name  Flags
      newStackTrace  

  private void trace(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
        start local 1 // java.lang.String format
        start local 2 // java.lang.Object[] args
         0: .line 172
            getstatic org.graalvm.compiler.hotspot.CompilationWatchDog.DEBUG:Z
            ifeq 2
         1: .line 173
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* format */
            aload 2 /* args */
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.debug.TTY.println:(Ljava/lang/String;)V
         2: .line 175
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object[] args
        end local 1 // java.lang.String format
        end local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/graalvm/compiler/hotspot/CompilationWatchDog;
            0    3     1  format  Ljava/lang/String;
            0    3     2    args  [Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      format  
      args    

  private static long ms(double);
    descriptor: (D)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // double seconds
         0: .line 178
            dload 0 /* seconds */
            d2l
            ldc 1000
            lmul
            lreturn
        end local 0 // double seconds
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  seconds  D
    MethodParameters:
         Name  Flags
      seconds  

  private static double secs(long);
    descriptor: (J)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // long ms
         0: .line 182
            lload 0 /* ms */
            l2d
            ldc 1000.0
            ddiv
            dreturn
        end local 0 // long ms
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    ms  J
    MethodParameters:
      Name  Flags
      ms    

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
         0: .line 187
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.getName:()Ljava/lang/String;
            areturn
        end local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/CompilationWatchDog;

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
         0: .line 193
            aload 0 /* this */
            ldc "Started%n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            aastore
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.currentMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 1 /* currentlyCompiling */
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod currentlyCompiling
         2: .line 197
            aload 1 /* currentlyCompiling */
            ifnonnull 5
         3: .line 200
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.reset:()V
         4: .line 201
            goto 56
         5: .line 202
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack:
            invokestatic org.graalvm.compiler.hotspot.CompilationWatchDog.$SWITCH_TABLE$org$graalvm$compiler$hotspot$CompilationWatchDog$WatchDogState:()[I
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.state:Lorg/graalvm/compiler/hotspot/CompilationWatchDog$WatchDogState;
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog$WatchDogState.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 6
                    2: 10
                    3: 20
              default: 56
          }
         6: .line 204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* currentlyCompiling */
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.lastWatched:Ljdk/vm/ci/meta/ResolvedJavaMethod;
         7: .line 205
            aload 0 /* this */
            lconst_0
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.elapsed:J
         8: .line 206
            aload 0 /* this */
            getstatic org.graalvm.compiler.hotspot.CompilationWatchDog$WatchDogState.WATCHING_WITHOUT_STACK_INSPECTION:Lorg/graalvm/compiler/hotspot/CompilationWatchDog$WatchDogState;
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.tick:(Lorg/graalvm/compiler/hotspot/CompilationWatchDog$WatchDogState;)V
         9: .line 207
            goto 56
        10: .line 209
      StackMap locals:
      StackMap stack:
            aload 1 /* currentlyCompiling */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.lastWatched:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 18
        11: .line 210
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.elapsed:J
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.startDelayMilliseconds:J
            lcmp
            iflt 15
        12: .line 213
            aload 0 /* this */
            getstatic org.graalvm.compiler.hotspot.CompilationWatchDog$WatchDogState.WATCHING_WITH_STACK_INSPECTION:Lorg/graalvm/compiler/hotspot/CompilationWatchDog$WatchDogState;
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.tick:(Lorg/graalvm/compiler/hotspot/CompilationWatchDog$WatchDogState;)V
        13: .line 214
            aload 0 /* this */
            ldc "changes mode to watching with stack traces"
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        14: .line 215
            goto 16
        15: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "watching without stack traces [%.2f seconds]"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.elapsed:J
            invokestatic org.graalvm.compiler.hotspot.CompilationWatchDog.secs:(J)D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        16: .line 220
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.elapsed:J
            ldc 1000
            ladd
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.elapsed:J
        17: .line 221
            goto 56
        18: .line 224
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.reset:()V
        19: .line 226
            goto 56
        20: .line 228
      StackMap locals:
      StackMap stack:
            aload 1 /* currentlyCompiling */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.lastWatched:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 54
        21: .line 229
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.elapsed:J
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.startDelayMilliseconds:J
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.traceIntervals:I
            i2l
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.stackTraceIntervalMilliseconds:J
            lmul
            ladd
            lcmp
            iflt 51
        22: .line 230
            aload 0 /* this */
            ldc "took a stack trace"
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        23: .line 231
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.compilerThread:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getStackTrace:()[Ljava/lang/StackTraceElement;
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.recordStackTrace:([Ljava/lang/StackTraceElement;)Z
            istore 2 /* newStackTrace */
        start local 2 // boolean newStackTrace
        24: .line 232
            iload 2 /* newStackTrace */
            ifne 27
        25: .line 233
            aload 0 /* this */
            ldc "%d identical stack traces in a row"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.numberOfIdenticalStackTraces:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        26: .line 234
            aload 0 /* this */
            iconst_0
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.numberOfIdenticalStackTraces:I
        27: .line 236
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.numberOfIdenticalStackTraces:I
            iconst_1
            iadd
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.numberOfIdenticalStackTraces:I
        28: .line 237
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.numberOfIdenticalStackTraces:I
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.nonFatalIdenticalCompilationSnapshots:I
            if_icmple 39
        29: .line 238
            ldc Lorg/graalvm/compiler/hotspot/CompilationWatchDog;
            dup
            astore 3
            monitorenter
        30: .line 239
            ldc "======================= WATCH DOG THREAD =======================%n%s took %d identical stack traces, which indicates a stuck compilation (id=%d) of %s%n%sExiting VM%n"
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
        31: .line 240
            aload 0 /* this */
            aastore
            dup
            iconst_1
        32: .line 241
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.numberOfIdenticalStackTraces:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.currentId:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.currentMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokestatic org.graalvm.compiler.hotspot.HotSpotGraalCompiler.fmt:(Ljava/lang/Object;)Ljava/util/Formattable;
            aastore
            dup
            iconst_4
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.lastStackTrace:[Ljava/lang/StackTraceElement;
            invokestatic org.graalvm.compiler.hotspot.HotSpotGraalCompiler.fmt:(Ljava/lang/Object;)Ljava/util/Formattable;
            aastore
        33: .line 239
            invokestatic org.graalvm.compiler.debug.TTY.printf:(Ljava/lang/String;[Ljava/lang/Object;)V
        34: .line 242
            iconst_m1
            invokestatic java.lang.System.exit:(I)V
        35: .line 238
            aload 3
            monitorexit
        36: goto 49
      StackMap locals: org.graalvm.compiler.hotspot.CompilationWatchDog jdk.vm.ci.meta.ResolvedJavaMethod int java.lang.Class
      StackMap stack: java.lang.Throwable
        37: aload 3
            monitorexit
        38: athrow
        39: .line 244
      StackMap locals:
      StackMap stack:
            iload 2 /* newStackTrace */
            ifeq 49
        40: .line 245
            ldc Lorg/graalvm/compiler/hotspot/CompilationWatchDog;
            dup
            astore 3
            monitorenter
        41: .line 246
            ldc "======================= WATCH DOG THREAD =======================%n%s detected long running compilation (id=%d) of %s [%.2f seconds]%n%s"
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
        42: .line 247
            aload 0 /* this */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.currentId:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.currentMethod:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokestatic org.graalvm.compiler.hotspot.HotSpotGraalCompiler.fmt:(Ljava/lang/Object;)Ljava/util/Formattable;
            aastore
            dup
            iconst_3
        43: .line 248
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.elapsed:J
            invokestatic org.graalvm.compiler.hotspot.CompilationWatchDog.secs:(J)D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_4
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.lastStackTrace:[Ljava/lang/StackTraceElement;
            invokestatic org.graalvm.compiler.hotspot.HotSpotGraalCompiler.fmt:(Ljava/lang/Object;)Ljava/util/Formattable;
            aastore
        44: .line 246
            invokestatic org.graalvm.compiler.debug.TTY.printf:(Ljava/lang/String;[Ljava/lang/Object;)V
        45: .line 245
            aload 3
            monitorexit
        46: goto 49
      StackMap locals: org.graalvm.compiler.hotspot.CompilationWatchDog jdk.vm.ci.meta.ResolvedJavaMethod int java.lang.Class
      StackMap stack: java.lang.Throwable
        47: aload 3
            monitorexit
        48: athrow
        49: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.traceIntervals:I
            iconst_1
            iadd
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.traceIntervals:I
        end local 2 // boolean newStackTrace
        50: .line 252
            goto 52
        51: .line 254
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "watching with stack traces [%.2f seconds]"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.elapsed:J
            invokestatic org.graalvm.compiler.hotspot.CompilationWatchDog.secs:(J)D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        52: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.graalvm.compiler.hotspot.CompilationWatchDog.elapsed:J
            ldc 1000
            ladd
            putfield org.graalvm.compiler.hotspot.CompilationWatchDog.elapsed:J
        53: .line 257
            goto 56
        54: .line 260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.reset:()V
        55: .line 262
            goto 56
        56: .line 268
      StackMap locals:
      StackMap stack:
            ldc 1000
            invokestatic java.lang.Thread.sleep:(J)V
        57: .line 269
            goto 1
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        58: pop
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod currentlyCompiling
        59: .line 194
            goto 1
        60: .line 273
      StackMap locals: org.graalvm.compiler.hotspot.CompilationWatchDog
      StackMap stack: java.lang.VirtualMachineError
            pop
            goto 63
        61: .line 280
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
        62: .line 285
            new java.lang.InternalError
            dup
            ldc "%s encountered an exception%n%s%n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            aastore
            dup
            iconst_1
            aload 1 /* t */
            invokestatic org.graalvm.compiler.hotspot.HotSpotGraalCompiler.fmt:(Ljava/lang/Object;)Ljava/util/Formattable;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 1 /* t */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Throwable t
        63: .line 287
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   64     0                this  Lorg/graalvm/compiler/hotspot/CompilationWatchDog;
            2   59     1  currentlyCompiling  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           24   50     2       newStackTrace  Z
           62   63     1                   t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          30    36      37  any
          37    38      37  any
          41    46      47  any
          47    48      47  any
          56    57      58  Class java.lang.InterruptedException
           0    60      60  Class java.lang.VirtualMachineError
           0    60      61  Class java.lang.Throwable

  static org.graalvm.compiler.hotspot.CompilationWatchDog watch(jdk.vm.ci.meta.ResolvedJavaMethod, int, org.graalvm.compiler.options.OptionValues);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;ILorg/graalvm/compiler/options/OptionValues;)Lorg/graalvm/compiler/hotspot/CompilationWatchDog;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=10, args_size=3
        start local 0 // jdk.vm.ci.meta.ResolvedJavaMethod method
        start local 1 // int id
        start local 2 // org.graalvm.compiler.options.OptionValues options
         0: .line 302
            getstatic org.graalvm.compiler.hotspot.CompilationWatchDog$Options.CompilationWatchDogStartDelay:Lorg/graalvm/compiler/options/OptionKey;
            aload 2 /* options */
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            invokestatic org.graalvm.compiler.hotspot.CompilationWatchDog.ms:(D)J
            lstore 3 /* startDelayMilliseconds */
        start local 3 // long startDelayMilliseconds
         1: .line 303
            lload 3 /* startDelayMilliseconds */
            l2d
            dconst_0
            dcmpl
            ifle 12
         2: .line 305
            getstatic org.graalvm.compiler.hotspot.CompilationWatchDog.WATCH_DOGS:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.hotspot.CompilationWatchDog
            astore 5 /* watchDog */
        start local 5 // org.graalvm.compiler.hotspot.CompilationWatchDog watchDog
         3: .line 306
            aload 5 /* watchDog */
            ifnonnull 10
         4: .line 307
            invokestatic org.graalvm.compiler.hotspot.CompilationWatchDog.currentThread:()Ljava/lang/Thread;
            astore 6 /* currentThread */
        start local 6 // java.lang.Thread currentThread
         5: .line 308
            getstatic org.graalvm.compiler.hotspot.CompilationWatchDog$Options.CompilationWatchDogStackTraceInterval:Lorg/graalvm/compiler/options/OptionKey;
            aload 2 /* options */
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            invokestatic org.graalvm.compiler.hotspot.CompilationWatchDog.ms:(D)J
            lstore 7 /* stackTraceIntervalMilliseconds */
        start local 7 // long stackTraceIntervalMilliseconds
         6: .line 309
            getstatic org.graalvm.compiler.hotspot.CompilationWatchDog$Options.NonFatalIdenticalCompilationSnapshots:Lorg/graalvm/compiler/options/OptionKey;
            aload 2 /* options */
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 9 /* nonFatalIdenticalCompilationSnapshots */
        start local 9 // int nonFatalIdenticalCompilationSnapshots
         7: .line 310
            new org.graalvm.compiler.hotspot.CompilationWatchDog
            dup
            aload 6 /* currentThread */
            lload 3 /* startDelayMilliseconds */
            lload 7 /* stackTraceIntervalMilliseconds */
            iload 9 /* nonFatalIdenticalCompilationSnapshots */
            invokespecial org.graalvm.compiler.hotspot.CompilationWatchDog.<init>:(Ljava/lang/Thread;JJI)V
            astore 5 /* watchDog */
         8: .line 311
            getstatic org.graalvm.compiler.hotspot.CompilationWatchDog.WATCH_DOGS:Ljava/lang/ThreadLocal;
            aload 5 /* watchDog */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         9: .line 312
            aload 5 /* watchDog */
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.start:()V
        end local 9 // int nonFatalIdenticalCompilationSnapshots
        end local 7 // long stackTraceIntervalMilliseconds
        end local 6 // java.lang.Thread currentThread
        10: .line 314
      StackMap locals: long org.graalvm.compiler.hotspot.CompilationWatchDog
      StackMap stack:
            aload 5 /* watchDog */
            aload 0 /* method */
            iload 1 /* id */
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.startCompilation:(Ljdk/vm/ci/meta/ResolvedJavaMethod;I)V
        11: .line 315
            aload 5 /* watchDog */
            areturn
        end local 5 // org.graalvm.compiler.hotspot.CompilationWatchDog watchDog
        12: .line 317
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // long startDelayMilliseconds
        end local 2 // org.graalvm.compiler.options.OptionValues options
        end local 1 // int id
        end local 0 // jdk.vm.ci.meta.ResolvedJavaMethod method
      LocalVariableTable:
        Start  End  Slot                                   Name  Signature
            0   13     0                                 method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   13     1                                     id  I
            0   13     2                                options  Lorg/graalvm/compiler/options/OptionValues;
            1   13     3                 startDelayMilliseconds  J
            3   12     5                               watchDog  Lorg/graalvm/compiler/hotspot/CompilationWatchDog;
            5   10     6                          currentThread  Ljava/lang/Thread;
            6   10     7         stackTraceIntervalMilliseconds  J
            7   10     9  nonFatalIdenticalCompilationSnapshots  I
    MethodParameters:
         Name  Flags
      method   
      id       
      options  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
         0: .line 322
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog.stopCompilation:()V
         1: .line 323
            return
        end local 0 // org.graalvm.compiler.hotspot.CompilationWatchDog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/hotspot/CompilationWatchDog;

  static int[] $SWITCH_TABLE$org$graalvm$compiler$hotspot$CompilationWatchDog$WatchDogState();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 54
            getstatic org.graalvm.compiler.hotspot.CompilationWatchDog.$SWITCH_TABLE$org$graalvm$compiler$hotspot$CompilationWatchDog$WatchDogState:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.graalvm.compiler.hotspot.CompilationWatchDog$WatchDogState.values:()[Lorg/graalvm/compiler/hotspot/CompilationWatchDog$WatchDogState;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.graalvm.compiler.hotspot.CompilationWatchDog$WatchDogState.SLEEPING:Lorg/graalvm/compiler/hotspot/CompilationWatchDog$WatchDogState;
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog$WatchDogState.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.graalvm.compiler.hotspot.CompilationWatchDog$WatchDogState.WATCHING_WITHOUT_STACK_INSPECTION:Lorg/graalvm/compiler/hotspot/CompilationWatchDog$WatchDogState;
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog$WatchDogState.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.graalvm.compiler.hotspot.CompilationWatchDog$WatchDogState.WATCHING_WITH_STACK_INSPECTION:Lorg/graalvm/compiler/hotspot/CompilationWatchDog$WatchDogState;
            invokevirtual org.graalvm.compiler.hotspot.CompilationWatchDog$WatchDogState.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic org.graalvm.compiler.hotspot.CompilationWatchDog.$SWITCH_TABLE$org$graalvm$compiler$hotspot$CompilationWatchDog$WatchDogState:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
}
SourceFile: "CompilationWatchDog.java"
NestMembers:
  org.graalvm.compiler.hotspot.CompilationWatchDog$Options  org.graalvm.compiler.hotspot.CompilationWatchDog$WatchDogState
InnerClasses:
  public Options = org.graalvm.compiler.hotspot.CompilationWatchDog$Options of org.graalvm.compiler.hotspot.CompilationWatchDog
  private final WatchDogState = org.graalvm.compiler.hotspot.CompilationWatchDog$WatchDogState of org.graalvm.compiler.hotspot.CompilationWatchDog