final class oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock extends java.util.concurrent.locks.ReentrantReadWriteLock implements oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingLock
{
private final oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadLock readLock;
private final oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantWriteLock writeLock;
private final oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode lockGraphNode;
private void <init>(oadd.com.google.common.util.concurrent.CycleDetectingLockFactory, oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode, boolean)
{
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode v;
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantWriteLock v;
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock v;
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory v;
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadLock v;
java.lang.Object v;
boolean v;
v := @this: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock;
v := @parameter: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory;
v := @parameter: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode;
v := @parameter: boolean;
specialinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: void <init>(boolean)>(v);
v = new oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadLock;
specialinvoke v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadLock: void <init>(oadd.com.google.common.util.concurrent.CycleDetectingLockFactory,oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock)>(v, v);
v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadLock readLock> = v;
v = new oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantWriteLock;
specialinvoke v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantWriteLock: void <init>(oadd.com.google.common.util.concurrent.CycleDetectingLockFactory,oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock)>(v, v);
v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantWriteLock writeLock> = v;
v = staticinvoke <oadd.com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode lockGraphNode> = v;
return;
}
public java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()
{
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadLock v;
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock v;
v := @this: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock;
v = v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadLock readLock>;
return v;
}
public java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()
{
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantWriteLock v;
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock v;
v := @this: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock;
v = v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantWriteLock writeLock>;
return v;
}
public oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode getLockGraphNode()
{
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode v;
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock v;
v := @this: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock;
v = v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode lockGraphNode>;
return v;
}
public boolean isAcquiredByCurrentThread()
{
oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock v;
int v;
boolean v, v;
v := @this: oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock;
v = virtualinvoke v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock: boolean isWriteLockedByCurrentThread()>();
if v != 0 goto label;
v = virtualinvoke v.<oadd.com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantReadWriteLock: int getReadHoldCount()>();
if v <= 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
}