abstract class com.oracle.truffle.api.TruffleLanguageSnippets$AsyncThreadLanguage extends com.oracle.truffle.api.TruffleLanguage<com.oracle.truffle.api.TruffleLanguageSnippets$Context>
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.truffle.api.TruffleLanguageSnippets$AsyncThreadLanguage
super_class: com.oracle.truffle.api.TruffleLanguage
{
final com.oracle.truffle.api.TruffleLanguageSnippets this$0;
descriptor: Lcom/oracle/truffle/api/TruffleLanguageSnippets;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.oracle.truffle.api.TruffleLanguageSnippets);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguageSnippets;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield com.oracle.truffle.api.TruffleLanguageSnippets$AsyncThreadLanguage.this$0:Lcom/oracle/truffle/api/TruffleLanguageSnippets;
aload 0
invokespecial com.oracle.truffle.api.TruffleLanguage.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/TruffleLanguageSnippets$AsyncThreadLanguage;
MethodParameters:
Name Flags
this$0 final
protected com.oracle.truffle.api.TruffleLanguageSnippets$Context createContext(com.oracle.truffle.api.TruffleLanguage$Env);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/TruffleLanguageSnippets$Context;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new com.oracle.truffle.api.TruffleLanguageSnippets$Context
dup
aload 0
getfield com.oracle.truffle.api.TruffleLanguageSnippets$AsyncThreadLanguage.this$0:Lcom/oracle/truffle/api/TruffleLanguageSnippets;
aload 1
invokespecial com.oracle.truffle.api.TruffleLanguageSnippets$Context.<init>:(Lcom/oracle/truffle/api/TruffleLanguageSnippets;Lcom/oracle/truffle/api/TruffleLanguage$Env;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/TruffleLanguageSnippets$AsyncThreadLanguage;
0 1 1 env Lcom/oracle/truffle/api/TruffleLanguage$Env;
MethodParameters:
Name Flags
env
protected boolean isThreadAccessAllowed(java.lang.Thread, boolean);
descriptor: (Ljava/lang/Thread;Z)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/TruffleLanguageSnippets$AsyncThreadLanguage;
0 1 1 thread Ljava/lang/Thread;
0 1 2 singleThreaded Z
MethodParameters:
Name Flags
thread
singleThreaded
protected void initializeContext(com.oracle.truffle.api.TruffleLanguageSnippets$Context);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguageSnippets$Context;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
getfield com.oracle.truffle.api.TruffleLanguageSnippets$Context.env:Lcom/oracle/truffle/api/TruffleLanguage$Env;
new com.oracle.truffle.api.TruffleLanguageSnippets$AsyncThreadLanguage$1
dup
aload 0
invokespecial com.oracle.truffle.api.TruffleLanguageSnippets$AsyncThreadLanguage$1.<init>:(Lcom/oracle/truffle/api/TruffleLanguageSnippets$AsyncThreadLanguage;)V
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.createThread:(Ljava/lang/Runnable;)Ljava/lang/Thread;
astore 2
start local 2 1: aload 1
getfield com.oracle.truffle.api.TruffleLanguageSnippets$Context.startedThreads:Ljava/util/List;
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: aload 2
invokevirtual java.lang.Thread.start:()V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/TruffleLanguageSnippets$AsyncThreadLanguage;
0 4 1 context Lcom/oracle/truffle/api/TruffleLanguageSnippets$Context;
1 4 2 t Ljava/lang/Thread;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
context
protected void finalizeContext(com.oracle.truffle.api.TruffleLanguageSnippets$Context);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguageSnippets$Context;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 11
3: StackMap locals: int int
StackMap stack:
aload 1
getfield com.oracle.truffle.api.TruffleLanguageSnippets$Context.startedThreads:Ljava/util/List;
iload 3
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Thread
astore 4
start local 4 4: aload 4
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpeq 7
5: aload 4
invokevirtual java.lang.Thread.interrupt:()V
6: aload 4
invokevirtual java.lang.Thread.join:()V
7: StackMap locals: java.lang.Thread
StackMap stack:
iinc 3 1
8: goto 11
StackMap locals:
StackMap stack: java.lang.InterruptedException
9: pop
10: iconst_1
istore 2
end local 4 11: StackMap locals:
StackMap stack:
iload 3
aload 1
getfield com.oracle.truffle.api.TruffleLanguageSnippets$Context.startedThreads:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmplt 3
end local 3 12: iload 2
ifeq 14
13: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
14: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/api/TruffleLanguageSnippets$AsyncThreadLanguage;
0 15 1 context Lcom/oracle/truffle/api/TruffleLanguageSnippets$Context;
1 15 2 interrupted Z
2 12 3 i I
4 11 4 threadToJoin Ljava/lang/Thread;
Exception table:
from to target type
4 8 9 Class java.lang.InterruptedException
MethodParameters:
Name Flags
context
protected java.lang.Object createContext(com.oracle.truffle.api.TruffleLanguage$Env);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.TruffleLanguageSnippets$AsyncThreadLanguage.createContext:(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Lcom/oracle/truffle/api/TruffleLanguageSnippets$Context;
areturn
LocalVariableTable:
Start End Slot Name Signature
protected void initializeContext(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast com.oracle.truffle.api.TruffleLanguageSnippets$Context
invokevirtual com.oracle.truffle.api.TruffleLanguageSnippets$AsyncThreadLanguage.initializeContext:(Lcom/oracle/truffle/api/TruffleLanguageSnippets$Context;)V
return
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
protected void finalizeContext(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast com.oracle.truffle.api.TruffleLanguageSnippets$Context
invokevirtual com.oracle.truffle.api.TruffleLanguageSnippets$AsyncThreadLanguage.finalizeContext:(Lcom/oracle/truffle/api/TruffleLanguageSnippets$Context;)V
return
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Lcom/oracle/truffle/api/TruffleLanguage<Lcom/oracle/truffle/api/TruffleLanguageSnippets$Context;>;
SourceFile: "TruffleLanguage.java"
NestHost: com.oracle.truffle.api.TruffleLanguageSnippets
InnerClasses:
public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
abstract AsyncThreadLanguage = com.oracle.truffle.api.TruffleLanguageSnippets$AsyncThreadLanguage of com.oracle.truffle.api.TruffleLanguageSnippets
com.oracle.truffle.api.TruffleLanguageSnippets$AsyncThreadLanguage$1
Context = com.oracle.truffle.api.TruffleLanguageSnippets$Context of com.oracle.truffle.api.TruffleLanguageSnippets