public class com.oracle.truffle.api.dsl.test.SynchronizationTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.api.dsl.test.SynchronizationTest
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.api.dsl.test.SynchronizationTest this
0: .line 59
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.oracle.truffle.api.dsl.test.SynchronizationTest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/dsl/test/SynchronizationTest;
public void testFirstExecutionDoesNotHoldLock();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=6, args_size=1
start local 0 // com.oracle.truffle.api.dsl.test.SynchronizationTest this
0: .line 117
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
astore 1 /* monitor */
start local 1 // java.lang.Object monitor
1: .line 118
new java.util.concurrent.CountDownLatch
dup
iconst_1
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
astore 2 /* latch */
start local 2 // java.util.concurrent.CountDownLatch latch
2: .line 120
new com.oracle.truffle.api.dsl.test.SynchronizationTest$IfNode
dup
invokespecial com.oracle.truffle.api.dsl.test.SynchronizationTest$IfNode.<init>:()V
astore 3 /* ifNode */
start local 3 // com.oracle.truffle.api.dsl.test.SynchronizationTest$IfNode ifNode
3: .line 124
aload 3 /* ifNode */
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.createCallTarget:(Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;)Lcom/oracle/truffle/api/CallTarget;
pop
4: .line 126
new java.lang.Thread
dup
new com.oracle.truffle.api.dsl.test.SynchronizationTest$1
dup
aload 0 /* this */
aload 3 /* ifNode */
aload 1 /* monitor */
aload 2 /* latch */
invokespecial com.oracle.truffle.api.dsl.test.SynchronizationTest$1.<init>:(Lcom/oracle/truffle/api/dsl/test/SynchronizationTest;Lcom/oracle/truffle/api/dsl/test/SynchronizationTest$IfNode;Ljava/lang/Object;Ljava/util/concurrent/CountDownLatch;)V
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
astore 4 /* waitThread */
start local 4 // java.lang.Thread waitThread
5: .line 132
aload 4 /* waitThread */
invokevirtual java.lang.Thread.start:()V
6: .line 134
new java.lang.Thread
dup
new com.oracle.truffle.api.dsl.test.SynchronizationTest$2
dup
aload 0 /* this */
aload 3 /* ifNode */
aload 1 /* monitor */
invokespecial com.oracle.truffle.api.dsl.test.SynchronizationTest$2.<init>:(Lcom/oracle/truffle/api/dsl/test/SynchronizationTest;Lcom/oracle/truffle/api/dsl/test/SynchronizationTest$IfNode;Ljava/lang/Object;)V
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
astore 5 /* notifyThread */
start local 5 // java.lang.Thread notifyThread
7: .line 141
aload 2 /* latch */
invokevirtual java.util.concurrent.CountDownLatch.await:()V
8: .line 142
aload 5 /* notifyThread */
invokevirtual java.lang.Thread.start:()V
9: .line 144
aload 4 /* waitThread */
invokevirtual java.lang.Thread.join:()V
10: .line 145
aload 5 /* notifyThread */
invokevirtual java.lang.Thread.join:()V
11: .line 146
return
end local 5 // java.lang.Thread notifyThread
end local 4 // java.lang.Thread waitThread
end local 3 // com.oracle.truffle.api.dsl.test.SynchronizationTest$IfNode ifNode
end local 2 // java.util.concurrent.CountDownLatch latch
end local 1 // java.lang.Object monitor
end local 0 // com.oracle.truffle.api.dsl.test.SynchronizationTest this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/api/dsl/test/SynchronizationTest;
1 12 1 monitor Ljava/lang/Object;
2 12 2 latch Ljava/util/concurrent/CountDownLatch;
3 12 3 ifNode Lcom/oracle/truffle/api/dsl/test/SynchronizationTest$IfNode;
5 12 4 waitThread Ljava/lang/Thread;
7 12 5 notifyThread Ljava/lang/Thread;
Exceptions:
throws java.lang.InterruptedException
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "SynchronizationTest.java"
NestMembers:
com.oracle.truffle.api.dsl.test.SynchronizationTest$1 com.oracle.truffle.api.dsl.test.SynchronizationTest$2 com.oracle.truffle.api.dsl.test.SynchronizationTest$IfNode com.oracle.truffle.api.dsl.test.SynchronizationTest$NotifyNode com.oracle.truffle.api.dsl.test.SynchronizationTest$WaitNode
InnerClasses:
com.oracle.truffle.api.dsl.test.SynchronizationTest$1
com.oracle.truffle.api.dsl.test.SynchronizationTest$2
IfNode = com.oracle.truffle.api.dsl.test.SynchronizationTest$IfNode of com.oracle.truffle.api.dsl.test.SynchronizationTest
abstract NotifyNode = com.oracle.truffle.api.dsl.test.SynchronizationTest$NotifyNode of com.oracle.truffle.api.dsl.test.SynchronizationTest
abstract WaitNode = com.oracle.truffle.api.dsl.test.SynchronizationTest$WaitNode of com.oracle.truffle.api.dsl.test.SynchronizationTest
public ValueNode = com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode of com.oracle.truffle.api.dsl.test.TypeSystemTest