public class com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest
  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.truffle.api.instrumentation.test.ContextInterruptStandaloneTest this
         0: .line 71
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/test/ContextInterruptStandaloneTest;

  public void testParallelCloseAndInterrupt();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=15, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest this
         0: .line 75
            bipush 10
            invokestatic java.util.concurrent.Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;
            astore 1 /* executorService */
        start local 1 // java.util.concurrent.ExecutorService executorService
         1: .line 76
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
            astore 4 /* context */
        start local 4 // org.graalvm.polyglot.Context context
         3: .line 77
            aload 4 /* context */
            ldc "instrumentation-test-language"
            invokevirtual org.graalvm.polyglot.Context.initialize:(Ljava/lang/String;)Z
            pop
         4: .line 78
            new java.util.concurrent.CountDownLatch
            dup
            iconst_5
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 5 /* passLatch */
        start local 5 // java.util.concurrent.CountDownLatch passLatch
         5: .line 79
            ldc "instrumentation-test-language"
            ldc "BLOCK(CONSTANT(42),LOOP(infinity, STATEMENT))"
            ldc "InfiniteLoop"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 6 /* source */
        start local 6 // org.graalvm.polyglot.Source source
         6: .line 80
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
            invokestatic com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest.getInstrumentEnv:(Lorg/graalvm/polyglot/Engine;)Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            astore 7 /* instrumentEnv */
        start local 7 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env instrumentEnv
         7: .line 81
            aload 5 /* passLatch */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic run(Ljava/util/concurrent/CountDownLatch;)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
                  java/util/concurrent/CountDownLatch.countDown()V (5)
                  ()V
            aload 7 /* instrumentEnv */
            invokestatic com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest.attachListener:(Ljava/lang/Runnable;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
         8: .line 82
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 9 /* futures */
        start local 9 // java.util.List futures
         9: .line 83
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        10: goto 13
        11: .line 84
      StackMap locals: com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest java.util.concurrent.ExecutorService java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context java.util.concurrent.CountDownLatch org.graalvm.polyglot.Source com.oracle.truffle.api.instrumentation.TruffleInstrument$Env top java.util.List int
      StackMap stack:
            aload 9 /* futures */
            aload 1 /* executorService */
            aload 4 /* context */
            aload 6 /* source */
            invokedynamic run(Lorg/graalvm/polyglot/Context;Lorg/graalvm/polyglot/Source;)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/instrumentation/test/ContextInterruptStandaloneTest.lambda$1(Lorg/graalvm/polyglot/Context;Lorg/graalvm/polyglot/Source;)V (6)
                  ()V
            invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 83
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 10 /* i */
            iconst_5
            if_icmplt 11
        end local 10 // int i
        14: .line 95
            aload 5 /* passLatch */
            invokevirtual java.util.concurrent.CountDownLatch.await:()V
        15: .line 96
            new java.util.Random
            dup
            invokespecial java.util.Random.<init>:()V
            astore 10 /* rnd */
        start local 10 // java.util.Random rnd
        16: .line 97
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        17: goto 20
        18: .line 98
      StackMap locals: com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest java.util.concurrent.ExecutorService java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context java.util.concurrent.CountDownLatch org.graalvm.polyglot.Source com.oracle.truffle.api.instrumentation.TruffleInstrument$Env top java.util.List java.util.Random int
      StackMap stack:
            aload 9 /* futures */
            aload 1 /* executorService */
            aload 10 /* rnd */
            aload 4 /* context */
            invokedynamic run(Ljava/util/Random;Lorg/graalvm/polyglot/Context;)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/instrumentation/test/ContextInterruptStandaloneTest.lambda$2(Ljava/util/Random;Lorg/graalvm/polyglot/Context;)V (6)
                  ()V
            invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        19: .line 97
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 11 /* i */
            iconst_5
            if_icmplt 18
        end local 11 // int i
        21: .line 110
            aload 9 /* futures */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 29
      StackMap locals: com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest java.util.concurrent.ExecutorService java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context java.util.concurrent.CountDownLatch org.graalvm.polyglot.Source com.oracle.truffle.api.instrumentation.TruffleInstrument$Env top java.util.List java.util.Random top java.util.Iterator
      StackMap stack:
        22: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.concurrent.Future
            astore 11 /* future */
        start local 11 // java.util.concurrent.Future future
        23: .line 111
            iconst_0
            istore 13 /* finished */
        start local 13 // boolean finished
        24: .line 114
      StackMap locals: com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest java.util.concurrent.ExecutorService java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context java.util.concurrent.CountDownLatch org.graalvm.polyglot.Source com.oracle.truffle.api.instrumentation.TruffleInstrument$Env top java.util.List java.util.Random java.util.concurrent.Future java.util.Iterator int
      StackMap stack:
            aload 11 /* future */
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
        25: .line 115
            iconst_1
            istore 13 /* finished */
        26: .line 116
            goto 28
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        27: pop
        28: .line 118
      StackMap locals:
      StackMap stack:
            iload 13 /* finished */
            ifeq 24
        end local 13 // boolean finished
        end local 11 // java.util.concurrent.Future future
        29: .line 110
      StackMap locals: com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest java.util.concurrent.ExecutorService java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context java.util.concurrent.CountDownLatch org.graalvm.polyglot.Source com.oracle.truffle.api.instrumentation.TruffleInstrument$Env top java.util.List java.util.Random top java.util.Iterator
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        end local 10 // java.util.Random rnd
        end local 9 // java.util.List futures
        end local 7 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env instrumentEnv
        end local 6 // org.graalvm.polyglot.Source source
        end local 5 // java.util.concurrent.CountDownLatch passLatch
        30: .line 120
            aload 4 /* context */
            ifnull 40
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
            goto 40
      StackMap locals: com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest java.util.concurrent.ExecutorService java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
      StackMap stack: java.lang.Throwable
        31: astore 2
            aload 4 /* context */
            ifnull 32
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        end local 4 // org.graalvm.polyglot.Context context
      StackMap locals:
      StackMap stack:
        32: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        33: astore 3
            aload 2
            ifnonnull 34
            aload 3
            astore 2
            goto 35
      StackMap locals:
      StackMap stack:
        34: aload 2
            aload 3
            if_acmpeq 35
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        35: aload 2
            athrow
      StackMap locals: com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest java.util.concurrent.ExecutorService
      StackMap stack: java.lang.Throwable
        36: astore 14
        37: .line 121
            aload 1 /* executorService */
            invokeinterface java.util.concurrent.ExecutorService.shutdownNow:()Ljava/util/List;
            pop
        38: .line 122
            aload 1 /* executorService */
            ldc 100
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.ExecutorService.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
            pop
        39: .line 123
            aload 14
            athrow
        40: .line 121
      StackMap locals:
      StackMap stack:
            aload 1 /* executorService */
            invokeinterface java.util.concurrent.ExecutorService.shutdownNow:()Ljava/util/List;
            pop
        41: .line 122
            aload 1 /* executorService */
            ldc 100
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.ExecutorService.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
            pop
        42: .line 124
            return
        end local 1 // java.util.concurrent.ExecutorService executorService
        end local 0 // com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   43     0             this  Lcom/oracle/truffle/api/instrumentation/test/ContextInterruptStandaloneTest;
            1   43     1  executorService  Ljava/util/concurrent/ExecutorService;
            3   32     4          context  Lorg/graalvm/polyglot/Context;
            5   30     5        passLatch  Ljava/util/concurrent/CountDownLatch;
            6   30     6           source  Lorg/graalvm/polyglot/Source;
            7   30     7    instrumentEnv  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            9   30     9          futures  Ljava/util/List<Ljava/util/concurrent/Future<*>;>;
           10   14    10                i  I
           16   30    10              rnd  Ljava/util/Random;
           17   21    11                i  I
           23   29    11           future  Ljava/util/concurrent/Future<*>;
           24   29    13         finished  Z
      Exception table:
        from    to  target  type
          24    26      27  Class java.lang.InterruptedException
           3    30      31  any
           2    33      33  any
           1    36      36  any
    Exceptions:
      throws java.lang.InterruptedException, java.io.IOException, java.util.concurrent.ExecutionException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testInterruptTimeout();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=15, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest this
         0: .line 128
            iconst_1
            invokestatic java.util.concurrent.Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;
            astore 1 /* executorService */
        start local 1 // java.util.concurrent.ExecutorService executorService
         1: .line 129
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
            astore 4 /* context */
        start local 4 // org.graalvm.polyglot.Context context
         3: .line 130
            aload 4 /* context */
            ldc "instrumentation-test-language"
            invokevirtual org.graalvm.polyglot.Context.initialize:(Ljava/lang/String;)Z
            pop
         4: .line 131
            new java.util.concurrent.CountDownLatch
            dup
            iconst_1
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 5 /* passLatch */
        start local 5 // java.util.concurrent.CountDownLatch passLatch
         5: .line 132
            new java.util.concurrent.CountDownLatch
            dup
            iconst_1
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 6 /* interruptFinishLatch */
        start local 6 // java.util.concurrent.CountDownLatch interruptFinishLatch
         6: .line 133
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
            astore 7 /* interruptFinished */
        start local 7 // java.util.concurrent.atomic.AtomicBoolean interruptFinished
         7: .line 134
            ldc "instrumentation-test-language"
            ldc "CONSTANT(42)"
            ldc "InfiniteLoop"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 8 /* source */
        start local 8 // org.graalvm.polyglot.Source source
         8: .line 135
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
            invokestatic com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest.getInstrumentEnv:(Lorg/graalvm/polyglot/Engine;)Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            astore 9 /* instrumentEnv */
        start local 9 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env instrumentEnv
         9: .line 136
            aload 5 /* passLatch */
            aload 7 /* interruptFinished */
            aload 6 /* interruptFinishLatch */
            invokedynamic run(Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/CountDownLatch;)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/instrumentation/test/ContextInterruptStandaloneTest.lambda$3(Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/CountDownLatch;)V (6)
                  ()V
        10: .line 144
            aload 9 /* instrumentEnv */
        11: .line 136
            invokestatic com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest.attachListener:(Ljava/lang/Runnable;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
        12: .line 145
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* futures */
        start local 10 // java.util.List futures
        13: .line 146
            aload 10 /* futures */
            aload 1 /* executorService */
            aload 4 /* context */
            aload 8 /* source */
            invokedynamic run(Lorg/graalvm/polyglot/Context;Lorg/graalvm/polyglot/Source;)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/instrumentation/test/ContextInterruptStandaloneTest.lambda$4(Lorg/graalvm/polyglot/Context;Lorg/graalvm/polyglot/Source;)V (6)
                  ()V
            invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 149
            aload 5 /* passLatch */
            invokevirtual java.util.concurrent.CountDownLatch.await:()V
        15: .line 151
            aload 4 /* context */
            lconst_1
            invokestatic java.time.Duration.ofSeconds:(J)Ljava/time/Duration;
            invokevirtual org.graalvm.polyglot.Context.interrupt:(Ljava/time/Duration;)V
        16: .line 152
            invokestatic org.junit.Assert.fail:()V
        17: .line 153
            goto 20
      StackMap locals: com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest java.util.concurrent.ExecutorService java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.atomic.AtomicBoolean org.graalvm.polyglot.Source com.oracle.truffle.api.instrumentation.TruffleInstrument$Env java.util.List
      StackMap stack: java.util.concurrent.TimeoutException
        18: astore 11 /* te */
        start local 11 // java.util.concurrent.TimeoutException te
        19: .line 154
            ldc "Interrupt timed out."
            aload 11 /* te */
            invokevirtual java.util.concurrent.TimeoutException.getMessage:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 11 // java.util.concurrent.TimeoutException te
        20: .line 156
      StackMap locals:
      StackMap stack:
            aload 7 /* interruptFinished */
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        21: .line 157
            aload 6 /* interruptFinishLatch */
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
        22: .line 158
            aload 10 /* futures */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 30
      StackMap locals: com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest java.util.concurrent.ExecutorService java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.atomic.AtomicBoolean org.graalvm.polyglot.Source com.oracle.truffle.api.instrumentation.TruffleInstrument$Env java.util.List top java.util.Iterator
      StackMap stack:
        23: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.concurrent.Future
            astore 11 /* future */
        start local 11 // java.util.concurrent.Future future
        24: .line 159
            iconst_0
            istore 13 /* finished */
        start local 13 // boolean finished
        25: .line 162
      StackMap locals: com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest java.util.concurrent.ExecutorService java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.atomic.AtomicBoolean org.graalvm.polyglot.Source com.oracle.truffle.api.instrumentation.TruffleInstrument$Env java.util.List java.util.concurrent.Future java.util.Iterator int
      StackMap stack:
            aload 11 /* future */
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
        26: .line 163
            iconst_1
            istore 13 /* finished */
        27: .line 164
            goto 29
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        28: pop
        29: .line 166
      StackMap locals:
      StackMap stack:
            iload 13 /* finished */
            ifeq 25
        end local 13 // boolean finished
        end local 11 // java.util.concurrent.Future future
        30: .line 158
      StackMap locals: com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest java.util.concurrent.ExecutorService java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.atomic.AtomicBoolean org.graalvm.polyglot.Source com.oracle.truffle.api.instrumentation.TruffleInstrument$Env java.util.List top java.util.Iterator
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        end local 10 // java.util.List futures
        end local 9 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env instrumentEnv
        end local 8 // org.graalvm.polyglot.Source source
        end local 7 // java.util.concurrent.atomic.AtomicBoolean interruptFinished
        end local 6 // java.util.concurrent.CountDownLatch interruptFinishLatch
        end local 5 // java.util.concurrent.CountDownLatch passLatch
        31: .line 168
            aload 4 /* context */
            ifnull 41
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
            goto 41
      StackMap locals: com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest java.util.concurrent.ExecutorService java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
      StackMap stack: java.lang.Throwable
        32: astore 2
            aload 4 /* context */
            ifnull 33
            aload 4 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        end local 4 // org.graalvm.polyglot.Context context
      StackMap locals:
      StackMap stack:
        33: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        34: astore 3
            aload 2
            ifnonnull 35
            aload 3
            astore 2
            goto 36
      StackMap locals:
      StackMap stack:
        35: aload 2
            aload 3
            if_acmpeq 36
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        36: aload 2
            athrow
      StackMap locals: com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest java.util.concurrent.ExecutorService
      StackMap stack: java.lang.Throwable
        37: astore 14
        38: .line 169
            aload 1 /* executorService */
            invokeinterface java.util.concurrent.ExecutorService.shutdownNow:()Ljava/util/List;
            pop
        39: .line 170
            aload 1 /* executorService */
            ldc 100
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.ExecutorService.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
            pop
        40: .line 171
            aload 14
            athrow
        41: .line 169
      StackMap locals:
      StackMap stack:
            aload 1 /* executorService */
            invokeinterface java.util.concurrent.ExecutorService.shutdownNow:()Ljava/util/List;
            pop
        42: .line 170
            aload 1 /* executorService */
            ldc 100
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.ExecutorService.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
            pop
        43: .line 172
            return
        end local 1 // java.util.concurrent.ExecutorService executorService
        end local 0 // com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   44     0                  this  Lcom/oracle/truffle/api/instrumentation/test/ContextInterruptStandaloneTest;
            1   44     1       executorService  Ljava/util/concurrent/ExecutorService;
            3   33     4               context  Lorg/graalvm/polyglot/Context;
            5   31     5             passLatch  Ljava/util/concurrent/CountDownLatch;
            6   31     6  interruptFinishLatch  Ljava/util/concurrent/CountDownLatch;
            7   31     7     interruptFinished  Ljava/util/concurrent/atomic/AtomicBoolean;
            8   31     8                source  Lorg/graalvm/polyglot/Source;
            9   31     9         instrumentEnv  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
           13   31    10               futures  Ljava/util/List<Ljava/util/concurrent/Future<*>;>;
           19   20    11                    te  Ljava/util/concurrent/TimeoutException;
           24   30    11                future  Ljava/util/concurrent/Future<*>;
           25   30    13              finished  Z
      Exception table:
        from    to  target  type
          15    17      18  Class java.util.concurrent.TimeoutException
          25    27      28  Class java.lang.InterruptedException
           3    31      32  any
           2    34      34  any
           1    37      37  any
    Exceptions:
      throws java.lang.InterruptedException, java.io.IOException, java.util.concurrent.ExecutionException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testInterruptCurrentThreadEntered();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest this
         0: .line 176
            iconst_1
            anewarray org.graalvm.polyglot.Context
            astore 1 /* context */
        start local 1 // org.graalvm.polyglot.Context[] context
         1: .line 177
            aload 1 /* context */
            iconst_0
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
            aastore
         2: .line 179
            aload 1 /* context */
            invokedynamic run([Lorg/graalvm/polyglot/Context;)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/instrumentation/test/ContextInterruptStandaloneTest.lambda$5([Lorg/graalvm/polyglot/Context;)V (6)
                  ()V
         3: .line 185
            aload 1 /* context */
            iconst_0
            aaload
            invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
            invokestatic com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest.getInstrumentEnv:(Lorg/graalvm/polyglot/Engine;)Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
         4: .line 179
            invokestatic com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest.attachListener:(Ljava/lang/Runnable;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
         5: .line 186
            aload 1 /* context */
            iconst_0
            aaload
            ldc "instrumentation-test-language"
            invokevirtual org.graalvm.polyglot.Context.initialize:(Ljava/lang/String;)Z
            pop
         6: .line 187
            ldc "instrumentation-test-language"
            ldc "LOOP(infinity,CONSTANT(42))"
            ldc "SelfInterruptingScript"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 2 /* source */
        start local 2 // org.graalvm.polyglot.Source source
         7: .line 188
            aload 1 /* context */
            iconst_0
            aaload
            aload 2 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            pop
         8: .line 189
            invokestatic org.junit.Assert.fail:()V
        end local 2 // org.graalvm.polyglot.Source source
         9: .line 190
            goto 16
      StackMap locals: com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest org.graalvm.polyglot.Context[]
      StackMap stack: org.graalvm.polyglot.PolyglotException
        10: astore 2 /* pe */
        start local 2 // org.graalvm.polyglot.PolyglotException pe
        11: .line 191
            ldc "java.lang.IllegalStateException: Cannot interrupt context from a thread where the context is active."
            aload 2 /* pe */
            invokevirtual org.graalvm.polyglot.PolyglotException.getMessage:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 2 // org.graalvm.polyglot.PolyglotException pe
        12: .line 193
            aload 1 /* context */
            iconst_0
            aaload
            invokevirtual org.graalvm.polyglot.Context.close:()V
            goto 17
        13: .line 192
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
        14: .line 193
            aload 1 /* context */
            iconst_0
            aaload
            invokevirtual org.graalvm.polyglot.Context.close:()V
        15: .line 194
            aload 3
            athrow
        16: .line 193
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            iconst_0
            aaload
            invokevirtual org.graalvm.polyglot.Context.close:()V
        17: .line 195
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.polyglot.Context[] context
        end local 0 // com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lcom/oracle/truffle/api/instrumentation/test/ContextInterruptStandaloneTest;
            1   18     1  context  [Lorg/graalvm/polyglot/Context;
            7    9     2   source  Lorg/graalvm/polyglot/Source;
           11   12     2       pe  Lorg/graalvm/polyglot/PolyglotException;
      Exception table:
        from    to  target  type
           2     9      10  Class org.graalvm.polyglot.PolyglotException
           2    12      13  any
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testInterruptCurrentThreadEnteredByChild();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest this
         0: .line 199
            iconst_1
            anewarray org.graalvm.polyglot.Context
            astore 1 /* context */
        start local 1 // org.graalvm.polyglot.Context[] context
         1: .line 200
            aload 1 /* context */
            iconst_0
            iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
            iconst_1
            invokevirtual org.graalvm.polyglot.Context$Builder.allowCreateThread:(Z)Lorg/graalvm/polyglot/Context$Builder;
            invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
            aastore
         2: .line 201
            iconst_1
            anewarray java.lang.Exception
            astore 2 /* polyglotThreadException */
        start local 2 // java.lang.Exception[] polyglotThreadException
         3: .line 203
            aload 1 /* context */
            aload 2 /* polyglotThreadException */
            invokedynamic run([Lorg/graalvm/polyglot/Context;[Ljava/lang/Exception;)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/instrumentation/test/ContextInterruptStandaloneTest.lambda$6([Lorg/graalvm/polyglot/Context;[Ljava/lang/Exception;)V (6)
                  ()V
         4: .line 217
            aload 1 /* context */
            iconst_0
            aaload
            invokevirtual org.graalvm.polyglot.Context.getEngine:()Lorg/graalvm/polyglot/Engine;
            invokestatic com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest.getInstrumentEnv:(Lorg/graalvm/polyglot/Engine;)Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
         5: .line 203
            invokestatic com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest.attachListener:(Ljava/lang/Runnable;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
         6: .line 218
            aload 1 /* context */
            iconst_0
            aaload
            ldc "instrumentation-test-language"
            invokevirtual org.graalvm.polyglot.Context.initialize:(Ljava/lang/String;)Z
            pop
         7: .line 219
            ldc "instrumentation-test-language"
            ldc "CONTEXT(DEFINE(foo,LOOP(infinity,CONSTANT(42))),SPAWN(foo),JOIN())"
            ldc "SelfInterruptingScript"
            invokestatic org.graalvm.polyglot.Source.newBuilder:(Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)Lorg/graalvm/polyglot/Source$Builder;
            invokevirtual org.graalvm.polyglot.Source$Builder.build:()Lorg/graalvm/polyglot/Source;
            astore 3 /* source */
        start local 3 // org.graalvm.polyglot.Source source
         8: .line 220
            aload 1 /* context */
            iconst_0
            aaload
            aload 3 /* source */
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            pop
         9: .line 221
            aload 2 /* polyglotThreadException */
            iconst_0
            aaload
            ifnull 11
        10: .line 222
            aload 2 /* polyglotThreadException */
            iconst_0
            aaload
            athrow
        11: .line 224
      StackMap locals: org.graalvm.polyglot.Context[] java.lang.Exception[] org.graalvm.polyglot.Source
      StackMap stack:
            invokestatic org.junit.Assert.fail:()V
        end local 3 // org.graalvm.polyglot.Source source
        12: .line 225
            goto 20
      StackMap locals: com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest org.graalvm.polyglot.Context[] java.lang.Exception[]
      StackMap stack: java.lang.Exception
        13: astore 3 /* e */
        start local 3 // java.lang.Exception e
        14: .line 226
            aload 3 /* e */
            instanceof java.lang.IllegalStateException
            invokestatic org.junit.Assert.assertTrue:(Z)V
        15: .line 227
            ldc "Cannot interrupt context from a thread where its child context is active."
            aload 3 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
        end local 3 // java.lang.Exception e
        16: .line 229
            aload 1 /* context */
            iconst_0
            aaload
            invokevirtual org.graalvm.polyglot.Context.close:()V
            goto 21
        17: .line 228
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        18: .line 229
            aload 1 /* context */
            iconst_0
            aaload
            invokevirtual org.graalvm.polyglot.Context.close:()V
        19: .line 230
            aload 4
            athrow
        20: .line 229
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            iconst_0
            aaload
            invokevirtual org.graalvm.polyglot.Context.close:()V
        21: .line 231
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Exception[] polyglotThreadException
        end local 1 // org.graalvm.polyglot.Context[] context
        end local 0 // com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   22     0                     this  Lcom/oracle/truffle/api/instrumentation/test/ContextInterruptStandaloneTest;
            1   22     1                  context  [Lorg/graalvm/polyglot/Context;
            3   22     2  polyglotThreadException  [Ljava/lang/Exception;
            8   12     3                   source  Lorg/graalvm/polyglot/Source;
           14   16     3                        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3    12      13  Class java.lang.Exception
           3    16      17  any
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testInterruptCurrentThreadNotEntered();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest this
         0: .line 235
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: iconst_0
            anewarray java.lang.String
            invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
            astore 3 /* context */
        start local 3 // org.graalvm.polyglot.Context context
         2: .line 236
            aload 3 /* context */
            ldc 100
            invokestatic java.time.Duration.ofSeconds:(J)Ljava/time/Duration;
            invokevirtual org.graalvm.polyglot.Context.interrupt:(Ljava/time/Duration;)V
         3: .line 237
            aload 3 /* context */
            ifnull 9
            aload 3 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
            goto 9
      StackMap locals: com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
      StackMap stack: java.lang.Throwable
         4: astore 1
            aload 3 /* context */
            ifnull 5
            aload 3 /* context */
            invokevirtual org.graalvm.polyglot.Context.close:()V
        end local 3 // org.graalvm.polyglot.Context context
      StackMap locals:
      StackMap stack:
         5: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 2
            aload 1
            ifnonnull 7
            aload 2
            astore 1
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 1
            aload 2
            if_acmpeq 8
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         8: aload 1
            athrow
         9: .line 238
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/oracle/truffle/api/instrumentation/test/ContextInterruptStandaloneTest;
            2    5     3  context  Lorg/graalvm/polyglot/Context;
      Exception table:
        from    to  target  type
           2     3       4  any
           1     6       6  any
    Exceptions:
      throws java.util.concurrent.TimeoutException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  static void attachListener(java.lang.Runnable, com.oracle.truffle.api.instrumentation.TruffleInstrument$Env);
    descriptor: (Ljava/lang/Runnable;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // java.lang.Runnable runnable
        start local 1 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env instrumentEnv
         0: .line 241
            aload 1 /* instrumentEnv */
            invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
            invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$ConstantTag;
            aastore
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
            invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
            new com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest$1
            dup
            aload 0 /* runnable */
            invokespecial com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest$1.<init>:(Ljava/lang/Runnable;)V
            invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
            pop
         1: .line 262
            return
        end local 1 // com.oracle.truffle.api.instrumentation.TruffleInstrument$Env instrumentEnv
        end local 0 // java.lang.Runnable runnable
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0       runnable  Ljava/lang/Runnable;
            0    2     1  instrumentEnv  Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
    MethodParameters:
               Name  Flags
      runnable       
      instrumentEnv  

  static com.oracle.truffle.api.instrumentation.TruffleInstrument$Env getInstrumentEnv(org.graalvm.polyglot.Engine);
    descriptor: (Lorg/graalvm/polyglot/Engine;)Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.Engine engine
         0: .line 265
            aload 0 /* engine */
            invokevirtual org.graalvm.polyglot.Engine.getInstruments:()Ljava/util/Map;
            ldc "InstrumentationUpdateInstrument"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.polyglot.Instrument
            ldc Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
            invokevirtual org.graalvm.polyglot.Instrument.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.instrumentation.TruffleInstrument$Env
            areturn
        end local 0 // org.graalvm.polyglot.Engine engine
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  engine  Lorg/graalvm/polyglot/Engine;
    MethodParameters:
        Name  Flags
      engine  

  private static void lambda$1(org.graalvm.polyglot.Context, org.graalvm.polyglot.Source);
    descriptor: (Lorg/graalvm/polyglot/Context;Lorg/graalvm/polyglot/Source;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=2
         0: .line 86
            aload 0
            aload 1
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            pop
         1: .line 87
            invokestatic org.junit.Assert.fail:()V
         2: .line 88
            goto 6
      StackMap locals:
      StackMap stack: org.graalvm.polyglot.PolyglotException
         3: astore 2 /* pe */
        start local 2 // org.graalvm.polyglot.PolyglotException pe
         4: .line 89
            aload 2 /* pe */
            invokevirtual org.graalvm.polyglot.PolyglotException.isInterrupted:()Z
            ifne 6
            aload 2 /* pe */
            invokevirtual org.graalvm.polyglot.PolyglotException.isCancelled:()Z
            ifne 6
         5: .line 90
            aload 2 /* pe */
            athrow
        end local 2 // org.graalvm.polyglot.PolyglotException pe
         6: .line 93
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            4    6     2    pe  Lorg/graalvm/polyglot/PolyglotException;
      Exception table:
        from    to  target  type
           0     2       3  Class org.graalvm.polyglot.PolyglotException

  private static void lambda$2(java.util.Random, org.graalvm.polyglot.Context);
    descriptor: (Ljava/util/Random;Lorg/graalvm/polyglot/Context;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
         0: .line 99
            aload 0
            invokevirtual java.util.Random.nextBoolean:()Z
            ifeq 3
         1: .line 100
            aload 1
            iconst_1
            invokevirtual org.graalvm.polyglot.Context.close:(Z)V
         2: .line 101
            goto 7
         3: .line 103
      StackMap locals:
      StackMap stack:
            aload 1
            ldc 50
            invokestatic java.time.Duration.ofSeconds:(J)Ljava/time/Duration;
            invokevirtual org.graalvm.polyglot.Context.interrupt:(Ljava/time/Duration;)V
         4: .line 104
            goto 7
      StackMap locals:
      StackMap stack: java.util.concurrent.TimeoutException
         5: astore 2 /* te */
        start local 2 // java.util.concurrent.TimeoutException te
         6: .line 105
            new java.lang.RuntimeException
            dup
            aload 2 /* te */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.util.concurrent.TimeoutException te
         7: .line 108
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            6    7     2    te  Ljava/util/concurrent/TimeoutException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.util.concurrent.TimeoutException

  private static void lambda$3(java.util.concurrent.CountDownLatch, java.util.concurrent.atomic.AtomicBoolean, java.util.concurrent.CountDownLatch);
    descriptor: (Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/CountDownLatch;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=3, args_size=3
         0: .line 137
            aload 0
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
         1: .line 138
            goto 5
         2: .line 140
      StackMap locals:
      StackMap stack:
            aload 2
            invokevirtual java.util.concurrent.CountDownLatch.await:()V
         3: .line 141
            goto 5
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         4: pop
         5: .line 138
      StackMap locals:
      StackMap stack:
            aload 1
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifeq 2
         6: .line 144
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.InterruptedException

  private static void lambda$4(org.graalvm.polyglot.Context, org.graalvm.polyglot.Source);
    descriptor: (Lorg/graalvm/polyglot/Context;Lorg/graalvm/polyglot/Source;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 147
            aload 0
            aload 1
            invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
            pop
         1: .line 148
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void lambda$5(org.graalvm.polyglot.Context[]);
    descriptor: ([Lorg/graalvm/polyglot/Context;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=1
         0: .line 181
            aload 0
            iconst_0
            aaload
            ldc 100
            invokestatic java.time.Duration.ofSeconds:(J)Ljava/time/Duration;
            invokevirtual org.graalvm.polyglot.Context.interrupt:(Ljava/time/Duration;)V
         1: .line 182
            goto 4
      StackMap locals:
      StackMap stack: java.util.concurrent.TimeoutException
         2: astore 1 /* te */
        start local 1 // java.util.concurrent.TimeoutException te
         3: .line 183
            new java.lang.RuntimeException
            dup
            aload 1 /* te */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.util.concurrent.TimeoutException te
         4: .line 185
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            3    4     1    te  Ljava/util/concurrent/TimeoutException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.util.concurrent.TimeoutException

  private static void lambda$6(org.graalvm.polyglot.Context[], java.lang.Exception[]);
    descriptor: ([Lorg/graalvm/polyglot/Context;[Ljava/lang/Exception;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=2
         0: .line 205
            aload 0
            iconst_0
            aaload
            ldc 100
            invokestatic java.time.Duration.ofSeconds:(J)Ljava/time/Duration;
            invokevirtual org.graalvm.polyglot.Context.interrupt:(Ljava/time/Duration;)V
         1: .line 206
            goto 10
      StackMap locals:
      StackMap stack: java.util.concurrent.TimeoutException
         2: astore 2 /* te */
        start local 2 // java.util.concurrent.TimeoutException te
         3: .line 207
            aload 1
            iconst_0
            aload 2 /* te */
            aastore
         4: .line 208
            new java.lang.RuntimeException
            dup
            aload 2 /* te */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.util.concurrent.TimeoutException te
         5: .line 209
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
            astore 2 /* e */
        start local 2 // java.lang.IllegalStateException e
         6: .line 210
            aload 1
            iconst_0
            aload 2 /* e */
            aastore
         7: .line 211
            ldc "Cannot interrupt context from a thread where its child context is active."
            aload 2 /* e */
            invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
         8: .line 212
            aload 2 /* e */
            athrow
         9: .line 214
      StackMap locals: java.lang.IllegalStateException
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.InterruptedException
            dup
            invokespecial java.lang.InterruptedException.<init>:()V
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.IllegalStateException e
        10: .line 217
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            3    5     2    te  Ljava/util/concurrent/TimeoutException;
            6   10     2     e  Ljava/lang/IllegalStateException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.util.concurrent.TimeoutException
           0     1       5  Class java.lang.IllegalStateException
}
SourceFile: "ContextInterruptStandaloneTest.java"
NestMembers:
  com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest$1
InnerClasses:
  public final Builder = com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder of com.oracle.truffle.api.instrumentation.SourceSectionFilter
  public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
  com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest$1
  ConstantTag = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$ConstantTag of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context
  public Builder = org.graalvm.polyglot.Source$Builder of org.graalvm.polyglot.Source