final class com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock extends java.util.concurrent.locks.ReentrantReadWriteLock implements com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingLock
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock
super_class: java.util.concurrent.locks.ReentrantReadWriteLock
{
private final com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadLock readLock;
descriptor: Lcom/google/common/util/concurrent/CycleDetectingLockFactory$CycleDetectingReentrantReadLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantWriteLock writeLock;
descriptor: Lcom/google/common/util/concurrent/CycleDetectingLockFactory$CycleDetectingReentrantWriteLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode lockGraphNode;
descriptor: Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final com.google.common.util.concurrent.CycleDetectingLockFactory this$0;
descriptor: Lcom/google/common/util/concurrent/CycleDetectingLockFactory;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(com.google.common.util.concurrent.CycleDetectingLockFactory, com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode, boolean);
descriptor: (Lcom/google/common/util/concurrent/CycleDetectingLockFactory;Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=4
start local 0 start local 2 start local 3 0: aload 0
aload 1
putfield com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock.this$0:Lcom/google/common/util/concurrent/CycleDetectingLockFactory;
1: aload 0
iload 3
invokespecial java.util.concurrent.locks.ReentrantReadWriteLock.<init>:(Z)V
2: aload 0
new com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadLock
dup
aload 1
aload 0
invokespecial com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadLock.<init>:(Lcom/google/common/util/concurrent/CycleDetectingLockFactory;Lcom/google/common/util/concurrent/CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock;)V
putfield com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock.readLock:Lcom/google/common/util/concurrent/CycleDetectingLockFactory$CycleDetectingReentrantReadLock;
3: aload 0
new com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantWriteLock
dup
aload 1
aload 0
invokespecial com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantWriteLock.<init>:(Lcom/google/common/util/concurrent/CycleDetectingLockFactory;Lcom/google/common/util/concurrent/CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock;)V
putfield com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock.writeLock:Lcom/google/common/util/concurrent/CycleDetectingLockFactory$CycleDetectingReentrantWriteLock;
4: aload 0
aload 2
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode
putfield com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock.lockGraphNode:Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;
5: return
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/common/util/concurrent/CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock;
0 6 2 lockGraphNode Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;
0 6 3 fair Z
MethodParameters:
Name Flags
this$0 final
lockGraphNode
fair
public java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock();
descriptor: ()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock.readLock:Lcom/google/common/util/concurrent/CycleDetectingLockFactory$CycleDetectingReentrantReadLock;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock;
public java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock();
descriptor: ()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock.writeLock:Lcom/google/common/util/concurrent/CycleDetectingLockFactory$CycleDetectingReentrantWriteLock;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock;
public com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode getLockGraphNode();
descriptor: ()Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock.lockGraphNode:Lcom/google/common/util/concurrent/CycleDetectingLockFactory$LockGraphNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/util/concurrent/CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock;
public boolean isAcquiredByCurrentThread();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock.isWriteLockedByCurrentThread:()Z
ifne 1
aload 0
invokevirtual com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock.getReadHoldCount:()I
ifgt 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/util/concurrent/CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock;
public java.util.concurrent.locks.Lock writeLock();
descriptor: ()Ljava/util/concurrent/locks/Lock;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
areturn
LocalVariableTable:
Start End Slot Name Signature
public java.util.concurrent.locks.Lock readLock();
descriptor: ()Ljava/util/concurrent/locks/Lock;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "CycleDetectingLockFactory.java"
NestHost: com.google.common.util.concurrent.CycleDetectingLockFactory
InnerClasses:
private abstract CycleDetectingLock = com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingLock of com.google.common.util.concurrent.CycleDetectingLockFactory
private CycleDetectingReentrantReadLock = com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadLock of com.google.common.util.concurrent.CycleDetectingLockFactory
final CycleDetectingReentrantReadWriteLock = com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock of com.google.common.util.concurrent.CycleDetectingLockFactory
private CycleDetectingReentrantWriteLock = com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantWriteLock of com.google.common.util.concurrent.CycleDetectingLockFactory
private LockGraphNode = com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode of com.google.common.util.concurrent.CycleDetectingLockFactory
public ReadLock = java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock of java.util.concurrent.locks.ReentrantReadWriteLock
public WriteLock = java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock of java.util.concurrent.locks.ReentrantReadWriteLock