public class com.oracle.truffle.js.test.threading.SharedJavaObjects
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.js.test.threading.SharedJavaObjects
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // com.oracle.truffle.js.test.threading.SharedJavaObjects this
0: .line 51
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.oracle.truffle.js.test.threading.SharedJavaObjects this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/js/test/threading/SharedJavaObjects;
public void valueInTwoThreads();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=1
start local 0 // com.oracle.truffle.js.test.threading.SharedJavaObjects this
0: .line 58
iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.threading.TestUtil.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
getstatic org.graalvm.polyglot.HostAccess.ALL:Lorg/graalvm/polyglot/HostAccess;
invokevirtual org.graalvm.polyglot.Context$Builder.allowHostAccess:(Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 1 /* cx1 */
start local 1 // org.graalvm.polyglot.Context cx1
1: .line 59
iconst_0
anewarray java.lang.String
invokestatic com.oracle.truffle.js.test.threading.TestUtil.newContextBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
getstatic org.graalvm.polyglot.HostAccess.ALL:Lorg/graalvm/polyglot/HostAccess;
invokevirtual org.graalvm.polyglot.Context$Builder.allowHostAccess:(Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
astore 2 /* cx2 */
start local 2 // org.graalvm.polyglot.Context cx2
2: .line 60
new java.util.concurrent.atomic.AtomicInteger
dup
sipush 200
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
astore 3 /* counter */
start local 3 // java.util.concurrent.atomic.AtomicInteger counter
3: .line 63
aload 1 /* cx1 */
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "counter"
aload 3 /* counter */
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
4: .line 64
aload 2 /* cx2 */
ldc "js"
invokevirtual org.graalvm.polyglot.Context.getBindings:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
ldc "counter"
aload 3 /* counter */
invokevirtual org.graalvm.polyglot.Value.putMember:(Ljava/lang/String;Ljava/lang/Object;)V
5: .line 66
new java.lang.Thread
dup
new com.oracle.truffle.js.test.threading.SharedJavaObjects$1
dup
aload 0 /* this */
aload 1 /* cx1 */
invokespecial com.oracle.truffle.js.test.threading.SharedJavaObjects$1.<init>:(Lcom/oracle/truffle/js/test/threading/SharedJavaObjects;Lorg/graalvm/polyglot/Context;)V
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
astore 4 /* thread */
start local 4 // java.lang.Thread thread
6: .line 76
aload 4 /* thread */
invokevirtual java.lang.Thread.start:()V
7: .line 77
bipush 100
istore 5 /* dec */
start local 5 // int dec
8: .line 78
goto 10
9: .line 79
StackMap locals: com.oracle.truffle.js.test.threading.SharedJavaObjects org.graalvm.polyglot.Context org.graalvm.polyglot.Context java.util.concurrent.atomic.AtomicInteger java.lang.Thread int
StackMap stack:
aload 2 /* cx2 */
ldc "js"
ldc "counter.decrementAndGet()"
invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
pop
10: .line 78
StackMap locals:
StackMap stack:
iload 5 /* dec */
iinc 5 /* dec */ -1
ifne 9
11: .line 81
aload 4 /* thread */
invokevirtual java.lang.Thread.join:()V
12: .line 82
aload 3 /* counter */
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
i2l
lconst_0
invokestatic org.junit.Assert.assertEquals:(JJ)V
end local 5 // int dec
end local 4 // java.lang.Thread thread
13: .line 83
goto 18
StackMap locals: com.oracle.truffle.js.test.threading.SharedJavaObjects org.graalvm.polyglot.Context org.graalvm.polyglot.Context java.util.concurrent.atomic.AtomicInteger
StackMap stack: java.lang.Throwable
14: astore 6
15: .line 84
aload 1 /* cx1 */
invokevirtual org.graalvm.polyglot.Context.close:()V
16: .line 85
aload 2 /* cx2 */
invokevirtual org.graalvm.polyglot.Context.close:()V
17: .line 86
aload 6
athrow
18: .line 84
StackMap locals:
StackMap stack:
aload 1 /* cx1 */
invokevirtual org.graalvm.polyglot.Context.close:()V
19: .line 85
aload 2 /* cx2 */
invokevirtual org.graalvm.polyglot.Context.close:()V
20: .line 87
return
end local 3 // java.util.concurrent.atomic.AtomicInteger counter
end local 2 // org.graalvm.polyglot.Context cx2
end local 1 // org.graalvm.polyglot.Context cx1
end local 0 // com.oracle.truffle.js.test.threading.SharedJavaObjects this
LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/oracle/truffle/js/test/threading/SharedJavaObjects;
1 21 1 cx1 Lorg/graalvm/polyglot/Context;
2 21 2 cx2 Lorg/graalvm/polyglot/Context;
3 21 3 counter Ljava/util/concurrent/atomic/AtomicInteger;
6 13 4 thread Ljava/lang/Thread;
8 13 5 dec I
Exception table:
from to target type
3 14 14 any
Exceptions:
throws java.lang.InterruptedException
RuntimeVisibleAnnotations:
org.junit.Test(timeout = 30000)
}
SourceFile: "SharedJavaObjects.java"
NestMembers:
com.oracle.truffle.js.test.threading.SharedJavaObjects$1
InnerClasses:
com.oracle.truffle.js.test.threading.SharedJavaObjects$1
public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context