class com.oracle.truffle.api.instrumentation.test.GR25718Test$InstrumentationThread extends java.lang.Thread
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.api.instrumentation.test.GR25718Test$InstrumentationThread
super_class: java.lang.Thread
{
private final org.graalvm.polyglot.Engine engine;
descriptor: Lorg/graalvm/polyglot/Engine;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.instrumentation.TruffleInstrument$Env env;
descriptor: Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.util.Iterator<java.util.concurrent.CountDownLatch> executionLatches;
descriptor: Ljava/util/Iterator;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Iterator<Ljava/util/concurrent/CountDownLatch;>;
final com.oracle.truffle.api.instrumentation.test.GR25718Test this$0;
descriptor: Lcom/oracle/truffle/api/instrumentation/test/GR25718Test;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.oracle.truffle.api.instrumentation.test.GR25718Test, org.graalvm.polyglot.Engine, com.oracle.truffle.api.instrumentation.TruffleInstrument$Env);
descriptor: (Lcom/oracle/truffle/api/instrumentation/test/GR25718Test;Lorg/graalvm/polyglot/Engine;Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 start local 2 start local 3 0: aload 0
aload 1
putfield com.oracle.truffle.api.instrumentation.test.GR25718Test$InstrumentationThread.this$0:Lcom/oracle/truffle/api/instrumentation/test/GR25718Test;
1: aload 0
ldc "Instrumentation Thread"
invokespecial java.lang.Thread.<init>:(Ljava/lang/String;)V
2: aload 0
aload 2
putfield com.oracle.truffle.api.instrumentation.test.GR25718Test$InstrumentationThread.engine:Lorg/graalvm/polyglot/Engine;
3: aload 0
aload 3
putfield com.oracle.truffle.api.instrumentation.test.GR25718Test$InstrumentationThread.env:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
4: return
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/test/GR25718Test$InstrumentationThread;
0 5 2 engine Lorg/graalvm/polyglot/Engine;
0 5 3 env Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
MethodParameters:
Name Flags
this$0 final
engine
env
void setExecutionLatches(java.util.List<java.util.concurrent.CountDownLatch>);
descriptor: (Ljava/util/List;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
putfield com.oracle.truffle.api.instrumentation.test.GR25718Test$InstrumentationThread.executionLatches:Ljava/util/Iterator;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/instrumentation/test/GR25718Test$InstrumentationThread;
0 2 1 latches Ljava/util/List<Ljava/util/concurrent/CountDownLatch;>;
Signature: (Ljava/util/List<Ljava/util/concurrent/CountDownLatch;>;)V
MethodParameters:
Name Flags
latches
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, 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.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
aload 0
getfield com.oracle.truffle.api.instrumentation.test.GR25718Test$InstrumentationThread.engine:Lorg/graalvm/polyglot/Engine;
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 3
start local 3 2: aload 3
ldc "proxyLanguage"
ldc "getExecLatches"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
pop
3: aload 3
ifnull 9
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 9
StackMap locals: com.oracle.truffle.api.instrumentation.test.GR25718Test$InstrumentationThread 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:
aload 0
getfield com.oracle.truffle.api.instrumentation.test.GR25718Test$InstrumentationThread.executionLatches:Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.concurrent.CountDownLatch
invokevirtual java.util.concurrent.CountDownLatch.await:()V
10: goto 12
StackMap locals:
StackMap stack: java.lang.InterruptedException
11: pop
12: StackMap locals:
StackMap stack:
new java.util.concurrent.atomic.AtomicBoolean
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
astore 1
start local 1 13: new java.util.concurrent.atomic.AtomicBoolean
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
astore 2
start local 2 14: new java.util.concurrent.CountDownLatch
dup
iconst_1
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
astore 3
start local 3 15: aload 0
getfield com.oracle.truffle.api.instrumentation.test.GR25718Test$InstrumentationThread.env:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
getstatic com.oracle.truffle.api.instrumentation.SourceFilter.ANY:Lcom/oracle/truffle/api/instrumentation/SourceFilter;
new com.oracle.truffle.api.instrumentation.test.GR25718Test$InstrumentationThread$1
dup
aload 0
aload 2
aload 3
aload 1
invokespecial com.oracle.truffle.api.instrumentation.test.GR25718Test$InstrumentationThread$1.<init>:(Lcom/oracle/truffle/api/instrumentation/test/GR25718Test$InstrumentationThread;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/atomic/AtomicBoolean;)V
16: iconst_1
17: invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecuteSourceListener:(Lcom/oracle/truffle/api/instrumentation/SourceFilter;Lcom/oracle/truffle/api/instrumentation/ExecuteSourceListener;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
pop
18: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/truffle/api/instrumentation/test/GR25718Test$InstrumentationThread;
2 5 3 c Lorg/graalvm/polyglot/Context;
13 19 1 onExecuteCalled Ljava/util/concurrent/atomic/AtomicBoolean;
14 19 2 createEventNodeCalled Ljava/util/concurrent/atomic/AtomicBoolean;
15 19 3 executionEventLatch Ljava/util/concurrent/CountDownLatch;
Exception table:
from to target type
2 3 4 any
1 6 6 any
9 10 11 Class java.lang.InterruptedException
}
SourceFile: "GR25718Test.java"
NestHost: com.oracle.truffle.api.instrumentation.test.GR25718Test
InnerClasses:
public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
private InstrumentationThread = com.oracle.truffle.api.instrumentation.test.GR25718Test$InstrumentationThread of com.oracle.truffle.api.instrumentation.test.GR25718Test
com.oracle.truffle.api.instrumentation.test.GR25718Test$InstrumentationThread$1
public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context