public class com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest
  super_class: java.lang.Object
{
  private static final int TASKS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 128

  private static final int PARALLELISM;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  private static final int NODES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  private static final int REPEATS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest this
         0: .line 66
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest;

  public void testSingleField();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=1
        start local 0 // com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest this
         0: .line 75
            new java.util.Random
            dup
            invokespecial java.util.Random.<init>:()V
            astore 1 /* random */
        start local 1 // java.util.Random random
         1: .line 76
            iconst_4
            anewarray java.lang.Object[]
            dup
            iconst_0
         2: .line 77
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc ""
            aastore
            aastore
            dup
            iconst_1
         3: .line 78
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            bipush 42
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            aastore
            aastore
            dup
            iconst_2
         4: .line 79
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            aastore
            dup
            iconst_3
         5: .line 80
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc 42
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            aastore
         6: .line 76
            astore 2 /* specializations */
        start local 2 // java.lang.Object[][] specializations
         7: .line 82
            iconst_0
            istore 3 /* iteration */
        start local 3 // int iteration
         8: goto 36
         9: .line 83
      StackMap locals: java.util.Random java.lang.Object[][] int
      StackMap stack:
            iconst_0
            istore 4 /* specialization */
        start local 4 // int specialization
        10: goto 15
        11: .line 84
      StackMap locals: int
      StackMap stack:
            invokestatic com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest.createNodes:()[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;
            astore 5 /* nodes */
        start local 5 // com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[] nodes
        12: .line 85
            iload 4 /* specialization */
            istore 6 /* finalSpecialization */
        start local 6 // int finalSpecialization
        13: .line 86
            aload 2 /* specializations */
            iload 6 /* finalSpecialization */
            aload 5 /* nodes */
            invokedynamic run([[Ljava/lang/Object;I[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;)Ljava/lang/Runnable;
              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:
                  ()V
                  com/oracle/truffle/api/dsl/test/CachedThreadSafetyTest.lambda$0([[Ljava/lang/Object;I[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;)V (6)
                  ()V
            invokestatic com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest.runInParallel:(Ljava/lang/Runnable;)V
        end local 6 // int finalSpecialization
        end local 5 // com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[] nodes
        14: .line 83
            iinc 4 /* specialization */ 1
      StackMap locals:
      StackMap stack:
        15: iload 4 /* specialization */
            aload 2 /* specializations */
            arraylength
            if_icmplt 11
        end local 4 // int specialization
        16: .line 91
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        17: goto 21
        18: .line 92
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest.createNodes:()[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;
            astore 5 /* nodes */
        start local 5 // com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[] nodes
        19: .line 93
            aload 1 /* random */
            aload 2 /* specializations */
            aload 5 /* nodes */
            invokedynamic run(Ljava/util/Random;[[Ljava/lang/Object;[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;)Ljava/lang/Runnable;
              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:
                  ()V
                  com/oracle/truffle/api/dsl/test/CachedThreadSafetyTest.lambda$1(Ljava/util/Random;[[Ljava/lang/Object;[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;)V (6)
                  ()V
            invokestatic com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest.runInParallel:(Ljava/lang/Runnable;)V
        end local 5 // com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[] nodes
        20: .line 91
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 4 /* i */
            bipush 10
            if_icmplt 18
        end local 4 // int i
        22: .line 99
            iconst_0
            istore 4 /* specialization */
        start local 4 // int specialization
        23: goto 28
        24: .line 100
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest.createNodes:()[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;
            astore 5 /* nodes */
        start local 5 // com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[] nodes
        25: .line 101
            iload 4 /* specialization */
            istore 6 /* finalSpecialization */
        start local 6 // int finalSpecialization
        26: .line 102
            aload 2 /* specializations */
            iload 6 /* finalSpecialization */
            aload 5 /* nodes */
            invokedynamic run([[Ljava/lang/Object;I[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;)Ljava/lang/Runnable;
              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:
                  ()V
                  com/oracle/truffle/api/dsl/test/CachedThreadSafetyTest.lambda$2([[Ljava/lang/Object;I[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;)V (6)
                  ()V
            invokestatic com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest.runInParallel:(Ljava/lang/Runnable;)V
        end local 6 // int finalSpecialization
        end local 5 // com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[] nodes
        27: .line 99
            iinc 4 /* specialization */ 1
      StackMap locals:
      StackMap stack:
        28: iload 4 /* specialization */
            aload 2 /* specializations */
            arraylength
            if_icmplt 24
        end local 4 // int specialization
        29: .line 107
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        30: goto 34
        31: .line 108
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest.createNodes:()[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;
            astore 5 /* nodes */
        start local 5 // com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[] nodes
        32: .line 109
            aload 1 /* random */
            aload 2 /* specializations */
            aload 5 /* nodes */
            invokedynamic run(Ljava/util/Random;[[Ljava/lang/Object;[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;)Ljava/lang/Runnable;
              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:
                  ()V
                  com/oracle/truffle/api/dsl/test/CachedThreadSafetyTest.lambda$3(Ljava/util/Random;[[Ljava/lang/Object;[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;)V (6)
                  ()V
            invokestatic com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest.runInParallel:(Ljava/lang/Runnable;)V
        end local 5 // com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[] nodes
        33: .line 107
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 4 /* i */
            bipush 10
            if_icmplt 31
        end local 4 // int i
        35: .line 82
            iinc 3 /* iteration */ 1
      StackMap locals:
      StackMap stack:
        36: iload 3 /* iteration */
            iconst_5
            if_icmplt 9
        end local 3 // int iteration
        37: .line 115
            return
        end local 2 // java.lang.Object[][] specializations
        end local 1 // java.util.Random random
        end local 0 // com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   38     0                 this  Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest;
            1   38     1               random  Ljava/util/Random;
            7   38     2      specializations  [[Ljava/lang/Object;
            8   37     3            iteration  I
           10   16     4       specialization  I
           12   14     5                nodes  [Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;
           13   14     6  finalSpecialization  I
           17   22     4                    i  I
           19   20     5                nodes  [Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;
           23   29     4       specialization  I
           25   27     5                nodes  [Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;
           26   27     6  finalSpecialization  I
           30   35     4                    i  I
           32   33     5                nodes  [Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;
    Exceptions:
      throws java.lang.InterruptedException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private static com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[] createNodes();
    descriptor: ()[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 120
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tSingleCachedFieldNodeGen cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void testSpecializationInInterpreter(java.lang.Object[][], int, com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[]);
    descriptor: ([[Ljava/lang/Object;I[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // java.lang.Object[][] specializations
        start local 1 // int specializationIndex
        start local 2 // com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[] nodes
         0: .line 130
            iconst_0
            istore 3 /* nodeIndex */
        start local 3 // int nodeIndex
         1: goto 6
         2: .line 131
      StackMap locals: int
      StackMap stack:
            aload 0 /* specializations */
            iload 1 /* specializationIndex */
            aaload
            iconst_0
            aaload
            astore 4 /* param */
        start local 4 // java.lang.Object param
         3: .line 132
            aload 2 /* nodes */
            iload 3 /* nodeIndex */
            aaload
            astore 5 /* node */
        start local 5 // com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode node
         4: .line 133
            aload 5 /* node */
            aload 4 /* param */
            invokevirtual com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode.execute:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode node
        end local 4 // java.lang.Object param
         5: .line 130
            iinc 3 /* nodeIndex */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* nodeIndex */
            aload 2 /* nodes */
            arraylength
            if_icmplt 2
        end local 3 // int nodeIndex
         7: .line 135
            return
        end local 2 // com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[] nodes
        end local 1 // int specializationIndex
        end local 0 // java.lang.Object[][] specializations
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    8     0      specializations  [[Ljava/lang/Object;
            0    8     1  specializationIndex  I
            0    8     2                nodes  [Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;
            1    7     3            nodeIndex  I
            3    5     4                param  Ljava/lang/Object;
            4    5     5                 node  Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;
    MethodParameters:
                     Name  Flags
      specializations      
      specializationIndex  
      nodes                

  private static void testSpecializationInCallTarget(java.lang.Object[][], int, com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[]);
    descriptor: ([[Ljava/lang/Object;I[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.Object[][] specializations
        start local 1 // int specializationIndex
        start local 2 // com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[] nodes
         0: .line 138
            iconst_0
            istore 3 /* nodeIndex */
        start local 3 // int nodeIndex
         1: goto 4
         2: .line 139
      StackMap locals: int
      StackMap stack:
            aload 2 /* nodes */
            iload 3 /* nodeIndex */
            aaload
            invokevirtual com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getCallTarget:()Lcom/oracle/truffle/api/RootCallTarget;
            aload 0 /* specializations */
            iload 1 /* specializationIndex */
            aaload
            invokeinterface com.oracle.truffle.api.RootCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 138
            iinc 3 /* nodeIndex */ 1
      StackMap locals:
      StackMap stack:
         4: iload 3 /* nodeIndex */
            aload 2 /* nodes */
            arraylength
            if_icmplt 2
        end local 3 // int nodeIndex
         5: .line 141
            return
        end local 2 // com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[] nodes
        end local 1 // int specializationIndex
        end local 0 // java.lang.Object[][] specializations
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    6     0      specializations  [[Ljava/lang/Object;
            0    6     1  specializationIndex  I
            0    6     2                nodes  [Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;
            1    5     3            nodeIndex  I
    MethodParameters:
                     Name  Flags
      specializations      
      specializationIndex  
      nodes                

  private static void runInParallel(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // java.lang.Runnable callable
         0: .line 245
            bipush 16
            invokestatic java.util.concurrent.Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;
            astore 1 /* executor */
        start local 1 // java.util.concurrent.ExecutorService executor
         1: .line 246
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* futures */
        start local 2 // java.util.List futures
         2: .line 247
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 248
      StackMap locals: java.util.concurrent.ExecutorService java.util.List int
      StackMap stack:
            aload 2 /* futures */
            aload 1 /* executor */
            aload 0 /* callable */
            invokedynamic call(Ljava/lang/Runnable;)Ljava/util/concurrent/Callable;
              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:
                  ()Ljava/lang/Object;
                  com/oracle/truffle/api/dsl/test/CachedThreadSafetyTest.lambda$4(Ljava/lang/Runnable;)Ljava/lang/Object; (6)
                  ()Ljava/lang/Object;
            invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 247
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            bipush 16
            sipush 128
            invokestatic java.lang.Math.max:(II)I
            if_icmplt 4
        end local 3 // int i
         7: .line 254
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         8: goto 15
         9: .line 255
      StackMap locals:
      StackMap stack:
            aload 2 /* futures */
            iload 3 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.util.concurrent.Future
            astore 4 /* future */
        start local 4 // java.util.concurrent.Future future
        10: .line 257
            aload 4 /* future */
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
        11: .line 258
            goto 14
      StackMap locals: java.lang.Runnable java.util.concurrent.ExecutorService java.util.List int java.util.concurrent.Future
      StackMap stack: java.util.concurrent.ExecutionException
        12: astore 5 /* e */
        start local 5 // java.util.concurrent.ExecutionException e
        13: .line 259
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Future task failed with index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 5 /* e */
            invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.util.concurrent.ExecutionException e
        end local 4 // java.util.concurrent.Future future
        14: .line 254
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 3 /* i */
            aload 2 /* futures */
            invokeinterface java.util.List.size:()I
            if_icmplt 9
        end local 3 // int i
        16: .line 262
            goto 21
      StackMap locals: java.lang.Runnable java.util.concurrent.ExecutorService java.util.List
      StackMap stack: java.lang.Throwable
        17: astore 6
        18: .line 263
            aload 1 /* executor */
            invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
        19: .line 264
            aload 1 /* executor */
            ldc 10000
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.ExecutorService.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
            pop
        20: .line 265
            aload 6
            athrow
        21: .line 263
      StackMap locals:
      StackMap stack:
            aload 1 /* executor */
            invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
        22: .line 264
            aload 1 /* executor */
            ldc 10000
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.ExecutorService.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
            pop
        23: .line 266
            return
        end local 2 // java.util.List futures
        end local 1 // java.util.concurrent.ExecutorService executor
        end local 0 // java.lang.Runnable callable
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0  callable  Ljava/lang/Runnable;
            1   24     1  executor  Ljava/util/concurrent/ExecutorService;
            2   24     2   futures  Ljava/util/List<Ljava/util/concurrent/Future<*>;>;
            3    7     3         i  I
            8   16     3         i  I
           10   14     4    future  Ljava/util/concurrent/Future<*>;
           13   14     5         e  Ljava/util/concurrent/ExecutionException;
      Exception table:
        from    to  target  type
          10    11      12  Class java.util.concurrent.ExecutionException
           7    17      17  any
    Exceptions:
      throws java.lang.InterruptedException
    MethodParameters:
          Name  Flags
      callable  

  private static void lambda$0(java.lang.Object[][], int, com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[]);
    descriptor: ([[Ljava/lang/Object;I[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 87
            aload 0
            iload 1
            aload 2
            invokestatic com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest.testSpecializationInInterpreter:([[Ljava/lang/Object;I[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;)V
         1: .line 88
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void lambda$1(java.util.Random, java.lang.Object[][], com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[]);
    descriptor: (Ljava/util/Random;[[Ljava/lang/Object;[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=3
         0: .line 94
            aload 0
            aload 1
            arraylength
            invokevirtual java.util.Random.nextInt:(I)I
            istore 3 /* specialization */
        start local 3 // int specialization
         1: .line 95
            aload 1
            iload 3 /* specialization */
            aload 2
            invokestatic com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest.testSpecializationInInterpreter:([[Ljava/lang/Object;I[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;)V
        end local 3 // int specialization
         2: .line 96
            return
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            1    2     3  specialization  I

  private static void lambda$2(java.lang.Object[][], int, com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[]);
    descriptor: ([[Ljava/lang/Object;I[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 103
            aload 0
            iload 1
            aload 2
            invokestatic com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest.testSpecializationInCallTarget:([[Ljava/lang/Object;I[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;)V
         1: .line 104
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void lambda$3(java.util.Random, java.lang.Object[][], com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode[]);
    descriptor: (Ljava/util/Random;[[Ljava/lang/Object;[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=3
         0: .line 110
            aload 0
            aload 1
            arraylength
            invokevirtual java.util.Random.nextInt:(I)I
            istore 3 /* specialization */
        start local 3 // int specialization
         1: .line 111
            aload 1
            iload 3 /* specialization */
            aload 2
            invokestatic com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest.testSpecializationInCallTarget:([[Ljava/lang/Object;I[Lcom/oracle/truffle/api/dsl/test/CachedThreadSafetyTest$SingleCachedFieldNode;)V
        end local 3 // int specialization
         2: .line 112
            return
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            1    2     3  specialization  I

  private static java.lang.Object lambda$4(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)Ljava/lang/Object;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 249
            aload 0
            invokeinterface java.lang.Runnable.run:()V
         1: .line 250
            aconst_null
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception
}
SourceFile: "CachedThreadSafetyTest.java"
NestMembers:
  com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$Signature  com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode  com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$TestRootNode
InnerClasses:
  final Signature = com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$Signature of com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest
  abstract SingleCachedFieldNode = com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$SingleCachedFieldNode of com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest
  private TestRootNode = com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest$TestRootNode of com.oracle.truffle.api.dsl.test.CachedThreadSafetyTest
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles