public class sun.awt.Mutex
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.awt.Mutex
super_class: java.lang.Object
{
private boolean locked;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.Thread owner;
descriptor: Ljava/lang/Thread;
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/awt/Mutex;
public synchronized void lock();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.awt.Mutex.locked:Z
ifeq 2
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 0
getfield sun.awt.Mutex.owner:Ljava/lang/Thread;
if_acmpne 2
1: new java.lang.IllegalMonitorStateException
dup
invokespecial java.lang.IllegalMonitorStateException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.Mutex.locked:Z
ifne 6
3: aload 0
iconst_1
putfield sun.awt.Mutex.locked:Z
4: aload 0
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
putfield sun.awt.Mutex.owner:Ljava/lang/Thread;
5: goto 9
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.wait:()V
7: goto 9
StackMap locals:
StackMap stack: java.lang.InterruptedException
8: pop
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.Mutex.owner:Ljava/lang/Thread;
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpne 2
10: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/awt/Mutex;
Exception table:
from to target type
6 7 8 Class java.lang.InterruptedException
public synchronized void unlock();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 0
getfield sun.awt.Mutex.owner:Ljava/lang/Thread;
if_acmpeq 2
1: new java.lang.IllegalMonitorStateException
dup
invokespecial java.lang.IllegalMonitorStateException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.awt.Mutex.owner:Ljava/lang/Thread;
3: aload 0
iconst_0
putfield sun.awt.Mutex.locked:Z
4: aload 0
invokevirtual java.lang.Object.notify:()V
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/awt/Mutex;
protected boolean isOwned();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.awt.Mutex.locked:Z
ifeq 1
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 0
getfield sun.awt.Mutex.owner:Ljava/lang/Thread;
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/awt/Mutex;
}
SourceFile: "Mutex.java"