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 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 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 0: bipush 10
invokestatic java.util.concurrent.Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;
astore 1
start local 1 1: 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
start local 4 3: aload 4
ldc "instrumentation-test-language"
invokevirtual org.graalvm.polyglot.Context.initialize:(Ljava/lang/String;)Z
pop
4: new java.util.concurrent.CountDownLatch
dup
iconst_5
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
astore 5
start local 5 5: 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
start local 6 6: aload 4
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
start local 7 7: aload 5
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
invokestatic com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest.attachListener:(Ljava/lang/Runnable;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
8: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 9
start local 9 9: iconst_0
istore 10
start local 10 10: goto 13
11: 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
aload 1
aload 4
aload 6
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: iinc 10 1
StackMap locals:
StackMap stack:
13: iload 10
iconst_5
if_icmplt 11
end local 10 14: aload 5
invokevirtual java.util.concurrent.CountDownLatch.await:()V
15: new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
astore 10
start local 10 16: iconst_0
istore 11
start local 11 17: goto 20
18: 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
aload 1
aload 10
aload 4
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: iinc 11 1
StackMap locals:
StackMap stack:
20: iload 11
iconst_5
if_icmplt 18
end local 11 21: aload 9
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
start local 11 23: iconst_0
istore 13
start local 13 24: 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
invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
pop
25: iconst_1
istore 13
26: goto 28
StackMap locals:
StackMap stack: java.lang.InterruptedException
27: pop
28: StackMap locals:
StackMap stack:
iload 13
ifeq 24
end local 13 end local 11 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:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 22
end local 10 end local 9 end local 7 end local 6 end local 5 30: aload 4
ifnull 40
aload 4
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
ifnull 32
aload 4
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 4 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: aload 1
invokeinterface java.util.concurrent.ExecutorService.shutdownNow:()Ljava/util/List;
pop
38: aload 1
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: aload 14
athrow
40: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.concurrent.ExecutorService.shutdownNow:()Ljava/util/List;
pop
41: aload 1
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: return
end local 1 end local 0 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 0: iconst_1
invokestatic java.util.concurrent.Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;
astore 1
start local 1 1: 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
start local 4 3: aload 4
ldc "instrumentation-test-language"
invokevirtual org.graalvm.polyglot.Context.initialize:(Ljava/lang/String;)Z
pop
4: new java.util.concurrent.CountDownLatch
dup
iconst_1
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
astore 5
start local 5 5: new java.util.concurrent.CountDownLatch
dup
iconst_1
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
astore 6
start local 6 6: new java.util.concurrent.atomic.AtomicBoolean
dup
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
astore 7
start local 7 7: 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
start local 8 8: aload 4
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
start local 9 9: aload 5
aload 7
aload 6
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: aload 9
11: invokestatic com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest.attachListener:(Ljava/lang/Runnable;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
12: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 10
start local 10 13: aload 10
aload 1
aload 4
aload 8
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: aload 5
invokevirtual java.util.concurrent.CountDownLatch.await:()V
15: aload 4
lconst_1
invokestatic java.time.Duration.ofSeconds:(J)Ljava/time/Duration;
invokevirtual org.graalvm.polyglot.Context.interrupt:(Ljava/time/Duration;)V
16: invokestatic org.junit.Assert.fail:()V
17: 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
start local 11 19: ldc "Interrupt timed out."
aload 11
invokevirtual java.util.concurrent.TimeoutException.getMessage:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 11 20: StackMap locals:
StackMap stack:
aload 7
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
21: aload 6
invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
22: aload 10
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
start local 11 24: iconst_0
istore 13
start local 13 25: 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
invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
pop
26: iconst_1
istore 13
27: goto 29
StackMap locals:
StackMap stack: java.lang.InterruptedException
28: pop
29: StackMap locals:
StackMap stack:
iload 13
ifeq 25
end local 13 end local 11 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:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 23
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 31: aload 4
ifnull 41
aload 4
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
ifnull 33
aload 4
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 4 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: aload 1
invokeinterface java.util.concurrent.ExecutorService.shutdownNow:()Ljava/util/List;
pop
39: aload 1
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: aload 14
athrow
41: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.concurrent.ExecutorService.shutdownNow:()Ljava/util/List;
pop
42: aload 1
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: return
end local 1 end local 0 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 0: iconst_1
anewarray org.graalvm.polyglot.Context
astore 1
start local 1 1: aload 1
iconst_0
iconst_0
anewarray java.lang.String
invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
aastore
2: aload 1
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: aload 1
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: invokestatic com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest.attachListener:(Ljava/lang/Runnable;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
5: aload 1
iconst_0
aaload
ldc "instrumentation-test-language"
invokevirtual org.graalvm.polyglot.Context.initialize:(Ljava/lang/String;)Z
pop
6: 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
start local 2 7: aload 1
iconst_0
aaload
aload 2
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
8: invokestatic org.junit.Assert.fail:()V
end local 2 9: goto 16
StackMap locals: com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest org.graalvm.polyglot.Context[]
StackMap stack: org.graalvm.polyglot.PolyglotException
10: astore 2
start local 2 11: ldc "java.lang.IllegalStateException: Cannot interrupt context from a thread where the context is active."
aload 2
invokevirtual org.graalvm.polyglot.PolyglotException.getMessage:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 2 12: aload 1
iconst_0
aaload
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 17
13: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
14: aload 1
iconst_0
aaload
invokevirtual org.graalvm.polyglot.Context.close:()V
15: aload 3
athrow
16: StackMap locals:
StackMap stack:
aload 1
iconst_0
aaload
invokevirtual org.graalvm.polyglot.Context.close:()V
17: StackMap locals:
StackMap stack:
return
end local 1 end local 0 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 0: iconst_1
anewarray org.graalvm.polyglot.Context
astore 1
start local 1 1: aload 1
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: iconst_1
anewarray java.lang.Exception
astore 2
start local 2 3: aload 1
aload 2
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: aload 1
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: invokestatic com.oracle.truffle.api.instrumentation.test.ContextInterruptStandaloneTest.attachListener:(Ljava/lang/Runnable;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
6: aload 1
iconst_0
aaload
ldc "instrumentation-test-language"
invokevirtual org.graalvm.polyglot.Context.initialize:(Ljava/lang/String;)Z
pop
7: 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
start local 3 8: aload 1
iconst_0
aaload
aload 3
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
9: aload 2
iconst_0
aaload
ifnull 11
10: aload 2
iconst_0
aaload
athrow
11: StackMap locals: org.graalvm.polyglot.Context[] java.lang.Exception[] org.graalvm.polyglot.Source
StackMap stack:
invokestatic org.junit.Assert.fail:()V
end local 3 12: 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
start local 3 14: aload 3
instanceof java.lang.IllegalStateException
invokestatic org.junit.Assert.assertTrue:(Z)V
15: ldc "Cannot interrupt context from a thread where its child context is active."
aload 3
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 3 16: aload 1
iconst_0
aaload
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 21
17: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
18: aload 1
iconst_0
aaload
invokevirtual org.graalvm.polyglot.Context.close:()V
19: aload 4
athrow
20: StackMap locals:
StackMap stack:
aload 1
iconst_0
aaload
invokevirtual org.graalvm.polyglot.Context.close:()V
21: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 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 0: 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
start local 3 2: aload 3
ldc 100
invokestatic java.time.Duration.ofSeconds:(J)Ljava/time/Duration;
invokevirtual org.graalvm.polyglot.Context.interrupt:(Ljava/time/Duration;)V
3: aload 3
ifnull 9
aload 3
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
ifnull 5
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 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: StackMap locals:
StackMap stack:
return
end local 0 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 start local 1 0: aload 1
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
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: return
end local 1 end local 0 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 0: aload 0
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 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: aload 0
aload 1
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
1: invokestatic org.junit.Assert.fail:()V
2: goto 6
StackMap locals:
StackMap stack: org.graalvm.polyglot.PolyglotException
3: astore 2
start local 2 4: aload 2
invokevirtual org.graalvm.polyglot.PolyglotException.isInterrupted:()Z
ifne 6
aload 2
invokevirtual org.graalvm.polyglot.PolyglotException.isCancelled:()Z
ifne 6
5: aload 2
athrow
end local 2 6: 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: aload 0
invokevirtual java.util.Random.nextBoolean:()Z
ifeq 3
1: aload 1
iconst_1
invokevirtual org.graalvm.polyglot.Context.close:(Z)V
2: goto 7
3: 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: goto 7
StackMap locals:
StackMap stack: java.util.concurrent.TimeoutException
5: astore 2
start local 2 6: new java.lang.RuntimeException
dup
aload 2
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 7: 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: aload 0
invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
1: goto 5
2: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.util.concurrent.CountDownLatch.await:()V
3: goto 5
StackMap locals:
StackMap stack: java.lang.InterruptedException
4: pop
5: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
ifeq 2
6: 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: aload 0
aload 1
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
1: 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: 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: goto 4
StackMap locals:
StackMap stack: java.util.concurrent.TimeoutException
2: astore 1
start local 1 3: new java.lang.RuntimeException
dup
aload 1
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 4: 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: 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: goto 10
StackMap locals:
StackMap stack: java.util.concurrent.TimeoutException
2: astore 2
start local 2 3: aload 1
iconst_0
aload 2
aastore
4: new java.lang.RuntimeException
dup
aload 2
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 5: StackMap locals:
StackMap stack: java.lang.IllegalStateException
astore 2
start local 2 6: aload 1
iconst_0
aload 2
aastore
7: ldc "Cannot interrupt context from a thread where its child context is active."
aload 2
invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
8: aload 2
athrow
9: 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 10: 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