public class com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest
super_class: java.lang.Object
{
static volatile com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$LanguageContext langContext;
descriptor: Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
flags: (0x0048) ACC_STATIC, ACC_VOLATILE
private final java.util.List<java.lang.Thread> threads;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/Thread;>;
private final java.util.List<java.util.concurrent.ExecutorService> executors;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/util/concurrent/ExecutorService;>;
volatile java.util.concurrent.atomic.AtomicInteger initializeCount;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0040) ACC_VOLATILE
volatile java.util.concurrent.atomic.AtomicInteger disposeCount;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0040) ACC_VOLATILE
volatile java.util.concurrent.atomic.AtomicInteger initializeMultiThreadingCount;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0040) ACC_VOLATILE
volatile java.util.concurrent.atomic.AtomicReference<com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest> lastInitializeRequest;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0040) ACC_VOLATILE
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;>;
volatile java.util.concurrent.atomic.AtomicReference<com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest> lastDisposeRequest;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0040) ACC_VOLATILE
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;>;
private final java.util.Map<java.lang.Object, java.util.Set<java.lang.Thread>> initializedThreadsPerContext;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Object;Ljava/util/Set<Ljava/lang/Thread;>;>;
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.threads:Ljava/util/List;
2: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.executors:Ljava/util/List;
3: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
putfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializedThreadsPerContext:Ljava/util/Map;
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
private static org.graalvm.polyglot.Value eval(org.graalvm.polyglot.Context, java.util.function.Function<com.oracle.truffle.api.TruffleLanguage$Env, java.lang.Object>);
descriptor: (Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: getstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.runinside:Ljava/lang/ThreadLocal;
aload 1
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
1: aload 0
ldc "MultiThreadedLanguage"
ldc ""
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
astore 3
2: getstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.runinside:Ljava/lang/ThreadLocal;
aconst_null
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
3: aload 3
areturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
5: getstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.runinside:Ljava/lang/ThreadLocal;
aconst_null
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
6: aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 context Lorg/graalvm/polyglot/Context;
0 7 1 f Ljava/util/function/Function<Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;>;
Exception table:
from to target type
1 2 4 any
Signature: (Lorg/graalvm/polyglot/Context;Ljava/util/function/Function<Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;>;)Lorg/graalvm/polyglot/Value;
MethodParameters:
Name Flags
context
f
public void testNoThreadAllowed();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "MultiThreadedLanguage"
aastore
invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
astore 1
start local 1 1: invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$0(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
2: aload 1
ldc "MultiThreadedLanguage"
invokevirtual org.graalvm.polyglot.Context.initialize:(Ljava/lang/String;)Z
pop
3: invokestatic org.junit.Assert.fail:()V
4: goto 7
StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest org.graalvm.polyglot.Context
StackMap stack: java.lang.IllegalStateException
5: astore 2
start local 2 6: aload 2
invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
ldc "Single threaded access requested by thread "
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
end local 2 7: StackMap locals:
StackMap stack:
aload 1
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$1(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
pop
8: invokestatic org.junit.Assert.fail:()V
9: goto 12
StackMap locals:
StackMap stack: java.lang.IllegalStateException
10: astore 2
start local 2 11: aload 2
invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
ldc "Single threaded access requested by thread "
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
end local 2 12: StackMap locals:
StackMap stack:
aload 1
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$2(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
pop
13: invokestatic org.junit.Assert.fail:()V
14: goto 17
StackMap locals:
StackMap stack: java.lang.IllegalStateException
15: astore 2
start local 2 16: aload 2
invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
ldc "Single threaded access requested by thread "
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
end local 2 17: StackMap locals:
StackMap stack:
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$3(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
18: aload 1
invokevirtual org.graalvm.polyglot.Context.close:()V
19: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
1 20 1 context Lorg/graalvm/polyglot/Context;
6 7 2 e Ljava/lang/IllegalStateException;
11 12 2 e Ljava/lang/IllegalStateException;
16 17 2 e Ljava/lang/IllegalStateException;
Exception table:
from to target type
2 4 5 Class java.lang.IllegalStateException
7 9 10 Class java.lang.IllegalStateException
12 14 15 Class java.lang.IllegalStateException
RuntimeVisibleAnnotations:
org.junit.Test()
private static void assertMultiThreadedError(org.graalvm.polyglot.Value, java.util.function.Consumer<org.graalvm.polyglot.Value>);
descriptor: (Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
1: invokestatic org.junit.Assert.fail:()V
2: goto 5
StackMap locals:
StackMap stack: java.lang.IllegalStateException
3: astore 2
start local 2 4: aload 2
invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
aload 2
invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
ldc "Multi threaded access requested by thread "
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
end local 2 5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 value Lorg/graalvm/polyglot/Value;
0 6 1 valueConsumer Ljava/util/function/Consumer<Lorg/graalvm/polyglot/Value;>;
4 5 2 e Ljava/lang/IllegalStateException;
Exception table:
from to target type
0 2 3 Class java.lang.IllegalStateException
Signature: (Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer<Lorg/graalvm/polyglot/Value;>;)V
MethodParameters:
Name Flags
value
valueConsumer
private static void assertUnsupportedOrNoError(org.graalvm.polyglot.Value, java.util.function.Consumer<org.graalvm.polyglot.Value>);
descriptor: (Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
1: goto 6
StackMap locals:
StackMap stack: java.lang.UnsupportedOperationException
2: pop
goto 6
3: StackMap locals:
StackMap stack: java.lang.ClassCastException
pop
goto 6
4: StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
pop
goto 6
5: StackMap locals:
StackMap stack: java.lang.NullPointerException
pop
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 value Lorg/graalvm/polyglot/Value;
0 7 1 valueConsumer Ljava/util/function/Consumer<Lorg/graalvm/polyglot/Value;>;
Exception table:
from to target type
0 1 2 Class java.lang.UnsupportedOperationException
0 1 3 Class java.lang.ClassCastException
0 1 4 Class java.lang.IllegalArgumentException
0 1 5 Class java.lang.NullPointerException
Signature: (Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer<Lorg/graalvm/polyglot/Value;>;)V
MethodParameters:
Name Flags
value
valueConsumer
public void testSingleThreading();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=1
start local 0 0: iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "MultiThreadedLanguage"
aastore
invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
astore 1
start local 1 1: new java.util.concurrent.atomic.AtomicReference
dup
aconst_null
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
astore 2
start local 2 2: aload 2
invokedynamic apply(Ljava/util/concurrent/atomic/AtomicReference;)Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$4(Ljava/util/concurrent/atomic/AtomicReference;Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
3: aload 0
iconst_1
invokevirtual com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.createExecutor:(I)Ljava/util/concurrent/ExecutorService;
astore 3
start local 3 4: lconst_0
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
5: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastInitializeRequest:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
6: aload 1
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$5(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
astore 4
start local 4 7: lconst_1
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
8: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.singleThreaded:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
9: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastInitializeRequest:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
10: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
11: new java.util.concurrent.CountDownLatch
dup
iconst_1
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
astore 5
start local 5 12: aload 3
aload 1
iconst_1
aload 5
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$6(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.evalAndWait:(Ljava/util/concurrent/ExecutorService;Lorg/graalvm/polyglot/Context;ZLjava/util/concurrent/CountDownLatch;Ljava/util/function/Function;)Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest$Completable;
astore 6
start local 6 13: aload 5
invokevirtual java.util.concurrent.CountDownLatch.await:()V
14: ldc 2
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
15: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.singleThreaded:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
16: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.threads:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastInitializeRequest:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
17: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.threads:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
18: lconst_0
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.disposeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
19: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastDisposeRequest:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
20: aload 1
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$7(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
pop
21: invokestatic org.junit.Assert.fail:()V
22: goto 25
StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest org.graalvm.polyglot.Context java.util.concurrent.atomic.AtomicReference java.util.concurrent.ExecutorService org.graalvm.polyglot.Value java.util.concurrent.CountDownLatch com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable
StackMap stack: java.lang.IllegalStateException
23: astore 7
start local 7 24: aload 7
invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
aload 7
invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
ldc "Multi threaded access requested by thread "
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
end local 7 25: StackMap locals:
StackMap stack:
aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$107(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
26: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.isBoolean()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
27: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.isNativePointer()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
28: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.isNull()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
29: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.isNumber()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
30: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.isString()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
31: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.isMetaObject()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
32: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.isTime()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
33: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.isTimeZone()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
34: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.isDate()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
35: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.isInstant()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
36: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.isException()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
37: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.fitsInByte()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
38: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.fitsInShort()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
39: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.fitsInInt()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
40: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.fitsInLong()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
41: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.fitsInFloat()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
42: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.fitsInDouble()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
43: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asBoolean()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
44: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asByte()B (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
45: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asShort()S (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
46: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asInt()I (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
47: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asLong()J (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
48: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asFloat()F (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
49: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asDouble()D (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
50: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asNativePointer()J (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
51: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asString()Ljava/lang/String; (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
52: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.getArraySize()J (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
53: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.getMemberKeys()Ljava/util/Set; (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
54: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.getMetaObject()Lorg/graalvm/polyglot/Value; (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
55: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asInstant()Ljava/time/Instant; (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
56: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asDate()Ljava/time/LocalDate; (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
57: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asTimeZone()Ljava/time/ZoneId; (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
58: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asTime()Ljava/time/LocalTime; (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
59: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.getMetaQualifiedName()Ljava/lang/String; (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
60: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.getMetaSimpleName()Ljava/lang/String; (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
61: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.throwException()Ljava/lang/RuntimeException; (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
62: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$45(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
63: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$46(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
64: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$47(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
65: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$48(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
66: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$49(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
67: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$50(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
68: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$51(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
69: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$52(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
70: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$53(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
71: aload 4
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$54(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertMultiThreadedError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
72: ldc 2
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
73: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
74: iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.singleThreaded:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
75: lconst_0
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.disposeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
76: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastDisposeRequest:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
77: aload 1
invokevirtual org.graalvm.polyglot.Context.close:()V
78: invokestatic org.junit.Assert.fail:()V
79: goto 82
StackMap locals:
StackMap stack: java.lang.IllegalStateException
80: astore 7
start local 7 81: aload 7
invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
aload 7
invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
ldc "The context is currently executing on another thread. Set cancelIfExecuting to true to stop the execution on this thread."
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
end local 7 82: StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
83: iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.singleThreaded:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
84: aload 6
invokevirtual com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable.complete:()V
85: aload 6
invokevirtual com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable.get:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/Object;)V
86: aload 1
invokevirtual org.graalvm.polyglot.Context.close:()V
87: ldc 2
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
88: ldc 2
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.disposeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
89: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastDisposeRequest:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpeq 90
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastDisposeRequest:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.threads:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
if_acmpeq 90
iconst_0
goto 91
StackMap locals:
StackMap stack:
90: iconst_1
StackMap locals:
StackMap stack: int
91: invokestatic org.junit.Assert.assertTrue:(Z)V
92: aload 3
invokeinterface java.util.concurrent.ExecutorService.shutdownNow:()Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
93: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 94 0 this Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
1 94 1 context Lorg/graalvm/polyglot/Context;
2 94 2 lastIsAllowedRequest Ljava/util/concurrent/atomic/AtomicReference<Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;>;
4 94 3 executor Ljava/util/concurrent/ExecutorService;
7 94 4 value Lorg/graalvm/polyglot/Value;
12 94 5 latch Ljava/util/concurrent/CountDownLatch;
13 94 6 future Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest$Completable<Lorg/graalvm/polyglot/Value;>;
24 25 7 e Ljava/lang/IllegalStateException;
81 82 7 e Ljava/lang/IllegalStateException;
Exception table:
from to target type
20 22 23 Class java.lang.IllegalStateException
77 79 80 Class java.lang.IllegalStateException
Exceptions:
throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
RuntimeVisibleAnnotations:
org.junit.Test()
public void testMultiThreading();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=11, args_size=1
start local 0 0: new java.util.concurrent.atomic.AtomicReference
dup
aconst_null
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
astore 1
start local 1 1: aload 1
invokedynamic apply(Ljava/util/concurrent/atomic/AtomicReference;)Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$55(Ljava/util/concurrent/atomic/AtomicReference;Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
2: aload 0
bipush 10
invokevirtual com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.createExecutor:(I)Ljava/util/concurrent/ExecutorService;
astore 2
start local 2 3: iconst_0
istore 3
start local 3 4: goto 76
5: StackMap locals: java.util.concurrent.atomic.AtomicReference java.util.concurrent.ExecutorService int
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.resetData:()V
6: iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "MultiThreadedLanguage"
aastore
invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
astore 4
start local 4 7: lconst_0
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
8: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastInitializeRequest:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
9: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 5
start local 5 10: iconst_0
istore 6
start local 6 11: goto 61
12: StackMap locals: org.graalvm.polyglot.Context java.util.List int
StackMap stack:
iload 6
ifne 13
new java.util.concurrent.CountDownLatch
dup
bipush 10
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
goto 14
StackMap locals:
StackMap stack:
13: aconst_null
StackMap locals:
StackMap stack: java.util.concurrent.CountDownLatch
14: astore 7
start local 7 15: aload 4
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$56(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
astore 8
start local 8 16: iconst_0
istore 9
start local 9 17: goto 22
18: StackMap locals: java.util.concurrent.CountDownLatch org.graalvm.polyglot.Value int
StackMap stack:
aload 5
aload 2
aload 4
iload 6
ifne 19
iconst_1
goto 20
StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest java.util.concurrent.atomic.AtomicReference java.util.concurrent.ExecutorService int org.graalvm.polyglot.Context java.util.List int java.util.concurrent.CountDownLatch org.graalvm.polyglot.Value int
StackMap stack: java.util.List java.util.concurrent.ExecutorService org.graalvm.polyglot.Context
19: iconst_0
StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest java.util.concurrent.atomic.AtomicReference java.util.concurrent.ExecutorService int org.graalvm.polyglot.Context java.util.List int java.util.concurrent.CountDownLatch org.graalvm.polyglot.Value int
StackMap stack: java.util.List java.util.concurrent.ExecutorService org.graalvm.polyglot.Context int
20: aload 7
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$57(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.evalAndWait:(Ljava/util/concurrent/ExecutorService;Lorg/graalvm/polyglot/Context;ZLjava/util/concurrent/CountDownLatch;Ljava/util/function/Function;)Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest$Completable;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
21: iinc 9 1
StackMap locals:
StackMap stack:
22: iload 9
bipush 10
if_icmplt 18
end local 9 23: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$108(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
24: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.isBoolean()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
25: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.isHostObject()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
26: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.isNativePointer()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
27: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.isNull()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
28: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.isNumber()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
29: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.isString()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
30: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.fitsInByte()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
31: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.fitsInDouble()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
32: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.fitsInFloat()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
33: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.fitsInInt()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
34: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.fitsInLong()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
35: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asBoolean()Z (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
36: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asByte()B (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
37: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asDouble()D (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
38: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asFloat()F (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
39: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asHostObject()Ljava/lang/Object; (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
40: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asInt()I (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
41: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asLong()J (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
42: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asNativePointer()J (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
43: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.asString()Ljava/lang/String; (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
44: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.getArraySize()J (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
45: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.getMemberKeys()Ljava/util/Set; (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
46: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
org/graalvm/polyglot/Value.getMetaObject()Lorg/graalvm/polyglot/Value; (5)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
47: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$82(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
48: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$83(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
49: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$84(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
50: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$85(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
51: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$86(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
52: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$87(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
53: aload 8
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$88(Lorg/graalvm/polyglot/Value;)V (6)
(Lorg/graalvm/polyglot/Value;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.assertUnsupportedOrNoError:(Lorg/graalvm/polyglot/Value;Ljava/util/function/Consumer;)V
54: iload 6
ifne 60
55: aload 7
invokevirtual java.util.concurrent.CountDownLatch.await:()V
56: aload 5
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 59
StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest java.util.concurrent.atomic.AtomicReference java.util.concurrent.ExecutorService int org.graalvm.polyglot.Context java.util.List int java.util.concurrent.CountDownLatch org.graalvm.polyglot.Value top java.util.Iterator
StackMap stack:
57: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable
astore 9
start local 9 58: aload 9
invokevirtual com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable.complete:()V
end local 9 59: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 57
end local 8 end local 7 60: StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest java.util.concurrent.atomic.AtomicReference java.util.concurrent.ExecutorService int org.graalvm.polyglot.Context java.util.List int
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
61: iload 6
bipush 100
if_icmplt 12
end local 6 62: aload 5
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 66
StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest java.util.concurrent.atomic.AtomicReference java.util.concurrent.ExecutorService int org.graalvm.polyglot.Context java.util.List top java.util.Iterator
StackMap stack:
63: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable
astore 6
start local 6 64: aload 6
invokevirtual com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable.get:()Ljava/lang/Object;
checkcast org.graalvm.polyglot.Value
invokevirtual org.graalvm.polyglot.Value.asHostObject:()Ljava/lang/Object;
astore 8
start local 8 65: getstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.langContext:Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
aload 8
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 8 end local 6 66: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 63
67: ldc 11
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
68: lconst_1
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeMultiThreadingCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
69: iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.singleThreaded:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
70: aload 4
invokevirtual org.graalvm.polyglot.Context.close:()V
71: iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.singleThreaded:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
72: lconst_1
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeMultiThreadingCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
73: ldc 11
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
74: ldc 11
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.disposeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
end local 5 end local 4 75: iinc 3 1
StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest java.util.concurrent.atomic.AtomicReference java.util.concurrent.ExecutorService int
StackMap stack:
76: iload 3
bipush 10
if_icmplt 5
end local 3 77: aload 2
invokeinterface java.util.concurrent.ExecutorService.shutdownNow:()Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
78: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 79 0 this Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
1 79 1 lastIsAllowedRequest Ljava/util/concurrent/atomic/AtomicReference<Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;>;
3 79 2 executor Ljava/util/concurrent/ExecutorService;
4 77 3 outerIter I
7 75 4 context Lorg/graalvm/polyglot/Context;
10 75 5 results Ljava/util/List<Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest$Completable<Lorg/graalvm/polyglot/Value;>;>;
11 62 6 iteration I
15 60 7 latch Ljava/util/concurrent/CountDownLatch;
16 60 8 value Lorg/graalvm/polyglot/Value;
17 23 9 i I
58 59 9 future Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest$Completable<Lorg/graalvm/polyglot/Value;>;
64 66 6 future Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest$Completable<Lorg/graalvm/polyglot/Value;>;
65 66 8 languageContext Ljava/lang/Object;
Exceptions:
throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
RuntimeVisibleAnnotations:
org.junit.Test()
public void testAccessTruffleContextPolyglotThread();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$89(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
1: invokestatic org.graalvm.polyglot.Engine.create:()Lorg/graalvm/polyglot/Engine;
astore 1
start local 1 2: new java.util.concurrent.atomic.AtomicReference
dup
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
astore 2
start local 2 3: 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;
aload 1
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 4: aload 3
new com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$1
dup
aload 0
aload 2
invokespecial com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$1.<init>:(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;Ljava/util/concurrent/atomic/AtomicReference;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
pop
5: aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
ifnull 7
6: aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast java.lang.Throwable
athrow
7: StackMap locals: org.graalvm.polyglot.Engine java.util.concurrent.atomic.AtomicReference org.graalvm.polyglot.Context
StackMap stack:
aload 1
invokevirtual org.graalvm.polyglot.Engine.close:()V
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
2 9 1 engine Lorg/graalvm/polyglot/Engine;
3 9 2 seenError Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/Throwable;>;
4 9 3 context Lorg/graalvm/polyglot/Context;
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.junit.Test()
public void testAccessTruffleContextFromExclusivePolyglotThread();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=1
start local 0 0: invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$90(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
1: new java.util.concurrent.atomic.AtomicReference
dup
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
astore 1
start local 1 2: aload 1
invokedynamic uncaughtException(Ljava/util/concurrent/atomic/AtomicReference;)Ljava/lang/Thread$UncaughtExceptionHandler;
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/Thread;Ljava/lang/Throwable;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$91(Ljava/util/concurrent/atomic/AtomicReference;Ljava/lang/Thread;Ljava/lang/Throwable;)V (6)
(Ljava/lang/Thread;Ljava/lang/Throwable;)V
astore 2
start local 2 3: 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;
astore 3
start local 3 4: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
astore 4
start local 4 5: aload 3
new com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$2
dup
aload 0
aload 2
aload 4
invokespecial com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$2.<init>:(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;Ljava/lang/Thread$UncaughtExceptionHandler;Ljava/util/concurrent/ConcurrentHashMap;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
pop
6: ldc 221
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
7: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
iconst_1
isub
i2l
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.disposeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
8: lconst_0
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeMultiThreadingCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
9: invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$92(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
10: aload 3
new com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$3
dup
aload 0
aload 2
invokespecial com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$3.<init>:(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;Ljava/lang/Thread$UncaughtExceptionHandler;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
pop
11: aload 1
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
ifnull 13
12: aload 1
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast java.lang.Throwable
athrow
13: StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest java.util.concurrent.atomic.AtomicReference java.lang.Thread$UncaughtExceptionHandler org.graalvm.polyglot.Context java.util.concurrent.ConcurrentHashMap
StackMap stack:
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
14: ldc 331
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
15: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.disposeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
16: lconst_1
aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeMultiThreadingCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
17: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
2 18 1 lastError Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/Throwable;>;
3 18 2 uncaughtHandler Ljava/lang/Thread$UncaughtExceptionHandler;
4 18 3 polyglotContext Lorg/graalvm/polyglot/Context;
5 18 4 seenContexts Ljava/util/concurrent/ConcurrentHashMap<Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;Ljava/lang/String;>;
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.junit.Test()
public void testAsssertionIfThreadStillActive();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=1
start local 0 0: invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$93(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
1: invokestatic org.graalvm.polyglot.Engine.create:()Lorg/graalvm/polyglot/Engine;
astore 1
start local 1 2: 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;
aload 1
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 2
start local 2 3: new java.util.concurrent.Semaphore
dup
iconst_0
invokespecial java.util.concurrent.Semaphore.<init>:(I)V
astore 3
start local 3 4: aload 2
new com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$4
dup
aload 0
aload 3
invokespecial com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$4.<init>:(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;Ljava/util/concurrent/Semaphore;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
5: invokevirtual org.graalvm.polyglot.Value.asHostObject:()Ljava/lang/Object;
checkcast java.lang.Thread
6: astore 4
start local 4 7: aload 1
invokevirtual org.graalvm.polyglot.Engine.close:()V
8: invokestatic org.junit.Assert.fail:()V
9: goto 13
StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest org.graalvm.polyglot.Engine org.graalvm.polyglot.Context java.util.concurrent.Semaphore java.lang.Thread
StackMap stack: org.graalvm.polyglot.PolyglotException
10: astore 5
start local 5 11: aload 5
invokevirtual org.graalvm.polyglot.PolyglotException.isInternalError:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
12: aload 5
invokevirtual org.graalvm.polyglot.PolyglotException.getMessage:()Ljava/lang/String;
ldc "The language did not complete all polyglot threads but should have"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
end local 5 13: StackMap locals:
StackMap stack:
aload 3
iconst_1
invokevirtual java.util.concurrent.Semaphore.release:(I)V
14: aload 4
invokevirtual java.lang.Thread.join:()V
15: aload 1
invokevirtual org.graalvm.polyglot.Engine.close:()V
16: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
2 17 1 engine Lorg/graalvm/polyglot/Engine;
3 17 2 context Lorg/graalvm/polyglot/Context;
4 17 3 wait Ljava/util/concurrent/Semaphore;
7 17 4 returnThread Ljava/lang/Thread;
11 13 5 e Lorg/graalvm/polyglot/PolyglotException;
Exception table:
from to target type
7 9 10 Class org.graalvm.polyglot.PolyglotException
Exceptions:
throws java.lang.InterruptedException
RuntimeVisibleAnnotations:
org.junit.Test()
public void testInterruptPolyglotThread();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=1
start local 0 0: invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$94(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
1: new java.util.concurrent.atomic.AtomicBoolean
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
astore 1
start local 1 2: new java.util.concurrent.atomic.AtomicReference
dup
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
astore 2
start local 2 3: invokestatic org.graalvm.polyglot.Engine.create:()Lorg/graalvm/polyglot/Engine;
astore 3
start local 3 4: 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;
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 4
start local 4 5: new java.util.concurrent.Semaphore
dup
iconst_0
invokespecial java.util.concurrent.Semaphore.<init>:(I)V
astore 5
start local 5 6: aload 4
new com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$5
dup
aload 0
aload 5
aload 1
aload 2
invokespecial com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$5.<init>:(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;Ljava/util/concurrent/Semaphore;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/atomic/AtomicReference;)V
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
7: invokevirtual org.graalvm.polyglot.Value.asHostObject:()Ljava/lang/Object;
pop
8: aload 3
iconst_1
invokevirtual org.graalvm.polyglot.Engine.close:(Z)V
9: aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
ifnull 11
10: aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast java.lang.Throwable
athrow
11: StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest java.util.concurrent.atomic.AtomicBoolean java.util.concurrent.atomic.AtomicReference org.graalvm.polyglot.Engine org.graalvm.polyglot.Context java.util.concurrent.Semaphore
StackMap stack:
aload 1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
12: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
2 13 1 seenInterrupt Ljava/util/concurrent/atomic/AtomicBoolean;
3 13 2 seenError Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/Throwable;>;
4 13 3 engine Lorg/graalvm/polyglot/Engine;
5 13 4 context Lorg/graalvm/polyglot/Context;
6 13 5 wait Ljava/util/concurrent/Semaphore;
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.junit.Test()
public void testMultiThreadedAccessExceptionThrownToCreator();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "MultiThreadedLanguage"
aastore
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;
astore 3
start local 3 2: invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$95(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean; (6)
(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.isThreadAccessAllowed:Ljava/util/function/Function;
3: aload 3
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$96(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
pop
4: aload 3
ifnull 10
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
goto 10
StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest java.lang.Throwable java.lang.Throwable org.graalvm.polyglot.Context
StackMap stack: java.lang.Throwable
5: astore 1
aload 3
ifnull 6
aload 3
invokevirtual org.graalvm.polyglot.Context.close:()V
end local 3 StackMap locals:
StackMap stack:
6: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 2
aload 1
ifnonnull 8
aload 2
astore 1
goto 9
StackMap locals:
StackMap stack:
8: aload 1
aload 2
if_acmpeq 9
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
9: aload 1
athrow
10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
2 6 3 context Lorg/graalvm/polyglot/Context;
Exception table:
from to target type
2 4 5 any
1 7 7 any
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.junit.Test()
public void setup();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.resetData:()V
1: aload 0
invokedynamic apply(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;)Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$100(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Void; (7)
(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Void;
putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.initializeMultiThreading:Ljava/util/function/Function;
2: aload 0
invokedynamic apply(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;)Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$101(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Void; (7)
(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Void;
putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.initializeThread:Ljava/util/function/Function;
3: aload 0
invokedynamic apply(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;)Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$103(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Void; (7)
(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Void;
putstatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.disposeThread:Ljava/util/function/Function;
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
RuntimeVisibleAnnotations:
org.junit.Before()
private void resetData();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
new java.util.concurrent.atomic.AtomicInteger
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
putfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
1: aload 0
new java.util.concurrent.atomic.AtomicInteger
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
putfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.disposeCount:Ljava/util/concurrent/atomic/AtomicInteger;
2: aload 0
new java.util.concurrent.atomic.AtomicInteger
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
putfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeMultiThreadingCount:Ljava/util/concurrent/atomic/AtomicInteger;
3: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
aconst_null
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
putfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastInitializeRequest:Ljava/util/concurrent/atomic/AtomicReference;
4: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
aconst_null
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
putfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastDisposeRequest:Ljava/util/concurrent/atomic/AtomicReference;
5: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializedThreadsPerContext:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
public void teardown();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.threads:Ljava/util/List;
invokeinterface java.util.List.clear:()V
1: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.executors:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
goto 4
StackMap locals: com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest top java.util.Iterator
StackMap stack:
2: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.concurrent.ExecutorService
astore 1
start local 1 3: aload 1
invokeinterface java.util.concurrent.ExecutorService.shutdownNow:()Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
end local 1 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.executors:Ljava/util/List;
invokeinterface java.util.List.clear:()V
6: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializedThreadsPerContext:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 10
StackMap locals:
StackMap stack:
7: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 1
start local 1 8: aload 1
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Set
invokeinterface java.util.Set.isEmpty:()Z
ifne 10
9: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Threads initialized but not disposed for context "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 1 10: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
11: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
3 4 1 executor Ljava/util/concurrent/ExecutorService;
8 10 1 entry Ljava/util/Map$Entry<Ljava/lang/Object;Ljava/util/Set<Ljava/lang/Thread;>;>;
RuntimeVisibleAnnotations:
org.junit.After()
private java.util.concurrent.ExecutorService createExecutor(int);
descriptor: (I)Ljava/util/concurrent/ExecutorService;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.threads:Ljava/util/List;
invokeinterface java.util.List.clear:()V
1: iload 1
aload 0
invokedynamic newThread(Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;)Ljava/util/concurrent/ThreadFactory;
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/Runnable;)Ljava/lang/Thread;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$104(Ljava/lang/Runnable;)Ljava/lang/Thread; (7)
(Ljava/lang/Runnable;)Ljava/lang/Thread;
invokestatic java.util.concurrent.Executors.newFixedThreadPool:(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
astore 2
start local 2 2: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.executors:Ljava/util/List;
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
0 4 1 noThreads I
2 4 2 service Ljava/util/concurrent/ExecutorService;
MethodParameters:
Name Flags
noThreads
private static com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable<org.graalvm.polyglot.Value> evalAndWait(java.util.concurrent.ExecutorService, org.graalvm.polyglot.Context, boolean, java.util.concurrent.CountDownLatch, java.util.function.Function<com.oracle.truffle.api.TruffleLanguage$Env, java.lang.Object>);
descriptor: (Ljava/util/concurrent/ExecutorService;Lorg/graalvm/polyglot/Context;ZLjava/util/concurrent/CountDownLatch;Ljava/util/function/Function;)Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest$Completable;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
ifeq 1
new java.util.concurrent.Semaphore
dup
iconst_0
invokespecial java.util.concurrent.Semaphore.<init>:(I)V
goto 2
StackMap locals:
StackMap stack:
1: aconst_null
StackMap locals:
StackMap stack: java.util.concurrent.Semaphore
2: astore 5
start local 5 3: aload 0
aload 1
aload 4
aload 3
aload 5
invokedynamic call(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;Ljava/util/concurrent/CountDownLatch;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/test/polyglot/MultiThreadedLanguageTest.lambda$105(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;Ljava/util/concurrent/CountDownLatch;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 4: new com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable
dup
aload 6
aload 5
invokespecial com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable.<init>:(Ljava/util/concurrent/Future;Ljava/util/concurrent/Semaphore;)V
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 executor Ljava/util/concurrent/ExecutorService;
0 5 1 context Lorg/graalvm/polyglot/Context;
0 5 2 manualComplete Z
0 5 3 latch Ljava/util/concurrent/CountDownLatch;
0 5 4 f Ljava/util/function/Function<Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;>;
3 5 5 waitInEval Ljava/util/concurrent/Semaphore;
4 5 6 valueResult Ljava/util/concurrent/Future<Lorg/graalvm/polyglot/Value;>;
Signature: (Ljava/util/concurrent/ExecutorService;Lorg/graalvm/polyglot/Context;ZLjava/util/concurrent/CountDownLatch;Ljava/util/function/Function<Lcom/oracle/truffle/api/TruffleLanguage$Env;Ljava/lang/Object;>;)Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest$Completable<Lorg/graalvm/polyglot/Value;>;
MethodParameters:
Name Flags
executor
context
manualComplete
latch
f
private static java.lang.Boolean lambda$0(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 req Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;
private static java.lang.Object lambda$1(com.oracle.truffle.api.TruffleLanguage$Env);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 env Lcom/oracle/truffle/api/TruffleLanguage$Env;
private static java.lang.Object lambda$2(com.oracle.truffle.api.TruffleLanguage$Env);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 env Lcom/oracle/truffle/api/TruffleLanguage$Env;
private static java.lang.Boolean lambda$3(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 req Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;
private static java.lang.Boolean lambda$4(java.util.concurrent.atomic.AtomicReference, com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
descriptor: (Ljava/util/concurrent/atomic/AtomicReference;Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
1: aload 1
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.singleThreaded:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 2 1 req Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;
private static java.lang.Object lambda$5(com.oracle.truffle.api.TruffleLanguage$Env);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 env Lcom/oracle/truffle/api/TruffleLanguage$Env;
private static java.lang.Object lambda$6(com.oracle.truffle.api.TruffleLanguage$Env);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.getContext:()Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 ev Lcom/oracle/truffle/api/TruffleLanguage$Env;
private static java.lang.Object lambda$7(com.oracle.truffle.api.TruffleLanguage$Env);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 env Lcom/oracle/truffle/api/TruffleLanguage$Env;
private static void lambda$107(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 arg0 Lorg/graalvm/polyglot/Value;
private static void lambda$45(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc ""
invokevirtual org.graalvm.polyglot.Value.isMetaInstance:(Ljava/lang/Object;)Z
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Lorg/graalvm/polyglot/Value;
private static void lambda$46(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc ""
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Lorg/graalvm/polyglot/Value;
private static void lambda$47(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc ""
aconst_null
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Lorg/graalvm/polyglot/Value;
private static void lambda$48(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc ""
invokevirtual org.graalvm.polyglot.Value.removeMember:(Ljava/lang/String;)Z
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Lorg/graalvm/polyglot/Value;
private static void lambda$49(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc ""
invokevirtual org.graalvm.polyglot.Value.hasMember:(Ljava/lang/String;)Z
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Lorg/graalvm/polyglot/Value;
private static void lambda$50(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.polyglot.Value.canExecute:()Z
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Lorg/graalvm/polyglot/Value;
private static void lambda$51(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Lorg/graalvm/polyglot/Value;
private static void lambda$52(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
lconst_0
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Lorg/graalvm/polyglot/Value;
private static void lambda$53(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
lconst_0
invokevirtual org.graalvm.polyglot.Value.removeArrayElement:(J)Z
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Lorg/graalvm/polyglot/Value;
private static void lambda$54(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
lconst_0
aconst_null
invokevirtual org.graalvm.polyglot.Value.setArrayElement:(JLjava/lang/Object;)V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Lorg/graalvm/polyglot/Value;
private static java.lang.Boolean lambda$55(java.util.concurrent.atomic.AtomicReference, com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
descriptor: (Ljava/util/concurrent/atomic/AtomicReference;Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
1: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 2 1 req Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;
private static java.lang.Object lambda$56(com.oracle.truffle.api.TruffleLanguage$Env);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 env Lcom/oracle/truffle/api/TruffleLanguage$Env;
private static java.lang.Object lambda$57(com.oracle.truffle.api.TruffleLanguage$Env);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.getContext:()Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 ev Lcom/oracle/truffle/api/TruffleLanguage$Env;
private static void lambda$108(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 arg0 Lorg/graalvm/polyglot/Value;
private static void lambda$82(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc ""
invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Lorg/graalvm/polyglot/Value;
private static void lambda$83(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc ""
aconst_null
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Lorg/graalvm/polyglot/Value;
private static void lambda$84(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc ""
invokevirtual org.graalvm.polyglot.Value.hasMember:(Ljava/lang/String;)Z
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Lorg/graalvm/polyglot/Value;
private static void lambda$85(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.polyglot.Value.canExecute:()Z
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Lorg/graalvm/polyglot/Value;
private static void lambda$86(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Lorg/graalvm/polyglot/Value;
private static void lambda$87(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
lconst_0
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Lorg/graalvm/polyglot/Value;
private static void lambda$88(org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
lconst_0
aconst_null
invokevirtual org.graalvm.polyglot.Value.setArrayElement:(JLjava/lang/Object;)V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Lorg/graalvm/polyglot/Value;
private static java.lang.Boolean lambda$89(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 req Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;
private static java.lang.Boolean lambda$90(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.singleThreaded:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 req Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;
private static void lambda$91(java.util.concurrent.atomic.AtomicReference, java.lang.Thread, java.lang.Throwable);
descriptor: (Ljava/util/concurrent/atomic/AtomicReference;Ljava/lang/Thread;Ljava/lang/Throwable;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=3
start local 1 start local 2 0: aload 0
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
return
end local 2 end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 run Ljava/lang/Thread;
0 1 2 e Ljava/lang/Throwable;
private static java.lang.Boolean lambda$92(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 req Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;
private static java.lang.Boolean lambda$93(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 req Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;
private static java.lang.Boolean lambda$94(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 req Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;
private static java.lang.Boolean lambda$95(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Boolean;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.singleThreaded:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 req Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;
private static java.lang.Object lambda$96(com.oracle.truffle.api.TruffleLanguage$Env);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokedynamic call(Lcom/oracle/truffle/api/TruffleLanguage$Env;)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/test/polyglot/MultiThreadedLanguageTest.lambda$97(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
()Ljava/lang/Object;
1: ldc Ljava/lang/IllegalStateException;
invokedynamic accept()Ljava/util/function/Consumer;
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;)V
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$98(Ljava/lang/IllegalStateException;)V (6)
(Ljava/lang/IllegalStateException;)V
2: invokestatic com.oracle.truffle.api.test.polyglot.AbstractPolyglotTest.assertFails:(Ljava/util/concurrent/Callable;Ljava/lang/Class;Ljava/util/function/Consumer;)V
3: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 env Lcom/oracle/truffle/api/TruffleLanguage$Env;
private java.lang.Void lambda$100(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Void;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeMultiThreadingCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
pop
1: aload 1
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.context:Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.getContext:()Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
2: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
0 3 1 req Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;
private java.lang.Void lambda$101(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Void;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
pop
1: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastInitializeRequest:Ljava/util/concurrent/atomic/AtomicReference;
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
2: aload 1
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.context:Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.getContext:()Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
3: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializedThreadsPerContext:Ljava/util/Map;
aload 1
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.context:Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$102(Ljava/lang/Object;)Ljava/util/Set; (6)
(Ljava/lang/Object;)Ljava/util/Set;
invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
checkcast java.util.Set
astore 2
start local 2 4: aload 2
aload 1
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 6
5: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Thread initialized twice for context "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.context:Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " thread "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
6: StackMap locals: java.util.Set
StackMap stack:
aload 2
aload 1
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
7: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
0 8 1 req Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;
4 8 2 threadsPerContext Ljava/util/Set<Ljava/lang/Thread;>;
private java.lang.Void lambda$103(com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest);
descriptor: (Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;)Ljava/lang/Void;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.disposeCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
pop
1: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.lastDisposeRequest:Ljava/util/concurrent/atomic/AtomicReference;
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
2: aload 1
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.context:Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage.getContext:()Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
3: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.initializedThreadsPerContext:Ljava/util/Map;
aload 1
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.context:Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$LanguageContext;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Set
astore 2
start local 2 4: aload 2
aload 1
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 6
5: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Not initialized but disposed thread "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
6: StackMap locals: java.util.Set
StackMap stack:
aload 2
aload 1
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest.thread:Ljava/lang/Thread;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
7: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
0 8 1 req Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguage$ThreadRequest;
4 8 2 threadsPerContext Ljava/util/Set<Ljava/lang/Thread;>;
private java.lang.Thread lambda$104(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)Ljava/lang/Thread;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new java.lang.Thread
dup
aload 1
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
astore 2
start local 2 1: aload 0
getfield com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.threads:Ljava/util/List;
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest;
0 3 1 r Ljava/lang/Runnable;
1 3 2 t Ljava/lang/Thread;
private static org.graalvm.polyglot.Value lambda$105(org.graalvm.polyglot.Context, java.util.function.Function, java.util.concurrent.CountDownLatch, java.util.concurrent.Semaphore);
descriptor: (Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/Semaphore;)Lorg/graalvm/polyglot/Value;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=5, args_size=4
0: aload 0
aload 1
aload 2
aload 3
invokedynamic apply(Ljava/util/function/Function;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/Semaphore;)Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/truffle/api/test/polyglot/MultiThreadedLanguageTest.lambda$106(Ljava/util/function/Function;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/Semaphore;Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object; (6)
(Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
invokestatic com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest.eval:(Lorg/graalvm/polyglot/Context;Ljava/util/function/Function;)Lorg/graalvm/polyglot/Value;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
start local 4 3: aload 2
ifnull 5
4: aload 2
invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
5: StackMap locals: java.lang.Throwable
StackMap stack:
aload 4
athrow
end local 4 LocalVariableTable:
Start End Slot Name Signature
3 6 4 e Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
Exceptions:
throws java.lang.Exception
private static java.lang.Object lambda$97(com.oracle.truffle.api.TruffleLanguage$Env);
descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
0: aload 0
invokedynamic run()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/test/polyglot/MultiThreadedLanguageTest.lambda$99()V (6)
()V
invokevirtual com.oracle.truffle.api.TruffleLanguage$Env.createThread:(Ljava/lang/Runnable;)Ljava/lang/Thread;
1: areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
private static void lambda$98(java.lang.IllegalStateException);
descriptor: (Ljava/lang/IllegalStateException;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
ldc "Multi threaded access requested by thread"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 ise Ljava/lang/IllegalStateException;
private static java.util.Set lambda$102(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/util/Set;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
invokestatic java.util.Collections.synchronizedSet:(Ljava/util/Set;)Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 e Ljava/lang/Object;
private static java.lang.Object lambda$106(java.util.function.Function, java.util.concurrent.CountDownLatch, java.util.concurrent.Semaphore, com.oracle.truffle.api.TruffleLanguage$Env);
descriptor: (Ljava/util/function/Function;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/Semaphore;Lcom/oracle/truffle/api/TruffleLanguage$Env;)Ljava/lang/Object;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=5, args_size=4
start local 3 0: aload 0
aload 3
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 1: aload 1
ifnull 3
2: aload 1
invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
3: StackMap locals: java.lang.Object
StackMap stack:
aload 2
ifnull 7
4: aload 2
invokevirtual java.util.concurrent.Semaphore.acquire:()V
5: goto 7
StackMap locals:
StackMap stack: java.lang.InterruptedException
6: pop
7: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 LocalVariableTable:
Start End Slot Name Signature
0 8 3 env Lcom/oracle/truffle/api/TruffleLanguage$Env;
1 8 4 result Ljava/lang/Object;
Exception table:
from to target type
1 5 6 Class java.lang.InterruptedException
private static void lambda$99();
descriptor: ()V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=0, locals=0, args_size=0
0: return
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "MultiThreadedLanguageTest.java"
NestMembers:
com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$1 com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$2 com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$3 com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$4 com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$5 com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable
InnerClasses:
public final Env = com.oracle.truffle.api.TruffleLanguage$Env of com.oracle.truffle.api.TruffleLanguage
LanguageContext = com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$LanguageContext of com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage
ThreadRequest = com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage$ThreadRequest of com.oracle.truffle.api.test.polyglot.MultiThreadedLanguage
com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$1
com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$2
com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$3
com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$4
com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$5
private Completable = com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest$Completable of com.oracle.truffle.api.test.polyglot.MultiThreadedLanguageTest
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map
public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context