public class com.oracle.svm.core.thread.Safepoint$Master$TestingBackdoor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.svm.core.thread.Safepoint$Master$TestingBackdoor
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.thread.Safepoint$Master$TestingBackdoor this
         0: .line 830
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.svm.core.thread.Safepoint$Master$TestingBackdoor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/core/thread/Safepoint$Master$TestingBackdoor;

  public static int countingVMOperation();
    descriptor: ()I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=0
         0: .line 833
            invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
            ldc "[Safepoint.Master.TestingBackdoor.countingVMOperation:"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            astore 0 /* trace */
        start local 0 // com.oracle.svm.core.log.Log trace
         1: .line 834
            iconst_0
            istore 1 /* atSafepoint */
        start local 1 // int atSafepoint
         2: .line 835
            iconst_0
            istore 2 /* ignoreSafepoints */
        start local 2 // int ignoreSafepoints
         3: .line 836
            iconst_0
            istore 3 /* notAtSafepoint */
        start local 3 // int notAtSafepoint
         4: .line 838
            invokestatic com.oracle.svm.core.thread.VMThreads.firstThread:()Lorg/graalvm/nativeimage/IsolateThread;
            astore 4 /* vmThread */
        start local 4 // org.graalvm.nativeimage.IsolateThread vmThread
         5: goto 15
         6: .line 839
      StackMap locals: com.oracle.svm.core.log.Log int int int org.graalvm.nativeimage.IsolateThread
      StackMap stack:
            aload 4 /* vmThread */
            invokestatic com.oracle.svm.core.thread.VMThreads$StatusSupport.isStatusIgnoreSafepoints:(Lorg/graalvm/nativeimage/IsolateThread;)Z
            ifeq 9
         7: .line 840
            iinc 2 /* ignoreSafepoints */ 1
         8: .line 841
            goto 14
         9: .line 843
      StackMap locals:
      StackMap stack:
            aload 4 /* vmThread */
            invokestatic com.oracle.svm.core.thread.VMThreads$StatusSupport.getStatusVolatile:(Lorg/graalvm/nativeimage/IsolateThread;)I
            istore 5 /* status */
        start local 5 // int status
        10: .line 844
            iload 5 /* status */
            tableswitch { // 2 - 2
                    2: 11
              default: 13
          }
        11: .line 846
      StackMap locals: int
      StackMap stack:
            iinc 1 /* atSafepoint */ 1
        12: .line 847
            goto 14
        13: .line 849
      StackMap locals:
      StackMap stack:
            iinc 3 /* notAtSafepoint */ 1
        end local 5 // int status
        14: .line 838
      StackMap locals:
      StackMap stack:
            aload 4 /* vmThread */
            invokestatic com.oracle.svm.core.thread.VMThreads.nextThread:(Lorg/graalvm/nativeimage/IsolateThread;)Lorg/graalvm/nativeimage/IsolateThread;
            astore 4 /* vmThread */
      StackMap locals:
      StackMap stack:
        15: aload 4 /* vmThread */
            invokeinterface org.graalvm.nativeimage.IsolateThread.isNonNull:()Z
            ifne 6
        end local 4 // org.graalvm.nativeimage.IsolateThread vmThread
        16: .line 854
            aload 0 /* trace */
            ldc "  atSafepoint: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            iload 1 /* atSafepoint */
            invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
        17: .line 855
            ldc "  ignoreSafepoints: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            iload 2 /* ignoreSafepoints */
            invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
        18: .line 856
            ldc "  notAtSafepoint: "
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            iload 3 /* notAtSafepoint */
            invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
            pop
        19: .line 857
            aload 0 /* trace */
            ldc "]"
            invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
            invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
            pop
        20: .line 858
            iload 1 /* atSafepoint */
            ireturn
        end local 3 // int notAtSafepoint
        end local 2 // int ignoreSafepoints
        end local 1 // int atSafepoint
        end local 0 // com.oracle.svm.core.log.Log trace
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            1   21     0             trace  Lcom/oracle/svm/core/log/Log;
            2   21     1       atSafepoint  I
            3   21     2  ignoreSafepoints  I
            4   21     3    notAtSafepoint  I
            5   16     4          vmThread  Lorg/graalvm/nativeimage/IsolateThread;
           10   14     5            status  I

  public static int getCurrentThreadSafepointRequestedCount();
    descriptor: ()I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 863
            invokestatic org.graalvm.nativeimage.CurrentIsolate.getCurrentThread:()Lorg/graalvm/nativeimage/IsolateThread;
            invokestatic com.oracle.svm.core.thread.Safepoint.getSafepointRequested:(Lorg/graalvm/nativeimage/IsolateThread;)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
}
SourceFile: "Safepoint.java"
NestHost: com.oracle.svm.core.thread.Safepoint
InnerClasses:
  public final Master = com.oracle.svm.core.thread.Safepoint$Master of com.oracle.svm.core.thread.Safepoint
  public TestingBackdoor = com.oracle.svm.core.thread.Safepoint$Master$TestingBackdoor of com.oracle.svm.core.thread.Safepoint$Master
  public StatusSupport = com.oracle.svm.core.thread.VMThreads$StatusSupport of com.oracle.svm.core.thread.VMThreads