public class com.oracle.truffle.api.instrumentation.test.ForceCloseTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.api.instrumentation.test.ForceCloseTest
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/ForceCloseTest;
public void testCancelMultipleTimes();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, 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: new java.util.concurrent.Semaphore
dup
iconst_0
invokespecial java.util.concurrent.Semaphore.<init>:(I)V
astore 2
start local 2 2: invokestatic org.graalvm.polyglot.Engine.create:()Lorg/graalvm/polyglot/Engine;
astore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 19
5: StackMap locals: com.oracle.truffle.api.instrumentation.test.ForceCloseTest java.util.concurrent.ExecutorService java.util.concurrent.Semaphore org.graalvm.polyglot.Engine int
StackMap stack:
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "instrumentation-test-language"
aastore
invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
aload 3
invokevirtual org.graalvm.polyglot.Context$Builder.engine:(Lorg/graalvm/polyglot/Engine;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 5
start local 5 6: aload 5
ldc "instrumentation-test-language"
ldc "EXPRESSION"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
pop
7: aload 1
aload 5
aload 2
invokedynamic call(Lorg/graalvm/polyglot/Context;Ljava/util/concurrent/Semaphore;)Ljava/util/concurrent/Callable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
com/oracle/truffle/api/instrumentation/test/ForceCloseTest.lambda$0(Lorg/graalvm/polyglot/Context;Ljava/util/concurrent/Semaphore;)Lorg/graalvm/polyglot/Value; (6)
()Lorg/graalvm/polyglot/Value;
invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
astore 6
start local 6 8: invokestatic java.lang.Math.random:()D
ldc 100.0
dmul
d2i
istore 7
start local 7 9: iload 7
ifle 11
10: iload 7
i2l
invokestatic java.lang.Thread.sleep:(J)V
11: StackMap locals: org.graalvm.polyglot.Context java.util.concurrent.Future int
StackMap stack:
aload 2
invokevirtual java.util.concurrent.Semaphore.acquireUninterruptibly:()V
12: aload 5
iconst_1
invokevirtual org.graalvm.polyglot.Context.close:(Z)V
13: aload 6
invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
pop
14: goto 18
StackMap locals:
StackMap stack: java.util.concurrent.ExecutionException
15: astore 8
start local 8 16: aload 8
invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
checkcast org.graalvm.polyglot.PolyglotException
astore 9
start local 9 17: aload 9
invokevirtual org.graalvm.polyglot.PolyglotException.isCancelled:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
end local 9 end local 8 end local 7 end local 6 end local 5 18: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
19: iload 4
bipush 10
if_icmplt 5
end local 4 20: aload 3
invokevirtual org.graalvm.polyglot.Engine.close:()V
21: aload 1
invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
22: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/oracle/truffle/api/instrumentation/test/ForceCloseTest;
1 23 1 service Ljava/util/concurrent/ExecutorService;
2 23 2 semaphore Ljava/util/concurrent/Semaphore;
3 23 3 engine Lorg/graalvm/polyglot/Engine;
4 20 4 x I
6 18 5 context Lorg/graalvm/polyglot/Context;
8 18 6 future Ljava/util/concurrent/Future<Lorg/graalvm/polyglot/Value;>;
9 18 7 waitTime I
16 18 8 e Ljava/util/concurrent/ExecutionException;
17 18 9 pe Lorg/graalvm/polyglot/PolyglotException;
Exception table:
from to target type
13 14 15 Class java.util.concurrent.ExecutionException
Exceptions:
throws java.lang.InterruptedException
RuntimeVisibleAnnotations:
org.junit.Test()
private static org.graalvm.polyglot.Value lambda$0(org.graalvm.polyglot.Context, java.util.concurrent.Semaphore);
descriptor: (Lorg/graalvm/polyglot/Context;Ljava/util/concurrent/Semaphore;)Lorg/graalvm/polyglot/Value;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=2
0: aload 0
invokevirtual org.graalvm.polyglot.Context.enter:()V
1: aload 1
invokevirtual java.util.concurrent.Semaphore.release:()V
2: aload 0
ldc "instrumentation-test-language"
ldc "LOOP(infinity, EXPRESSION)"
ldc "test"
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;
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
astore 3
3: aload 0
invokevirtual org.graalvm.polyglot.Context.leave:()V
4: aload 3
areturn
5: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
6: aload 0
invokevirtual org.graalvm.polyglot.Context.leave:()V
7: aload 2
athrow
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 5 any
Exceptions:
throws java.lang.Exception
}
SourceFile: "ForceCloseTest.java"
InnerClasses:
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