final class com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock extends java.util.concurrent.locks.ReentrantLock implements com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingLock
{
private final com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode lockGraphNode;
final com.google.common.util.concurrent.CycleDetectingLockFactory this$0;
private void <init>(com.google.common.util.concurrent.CycleDetectingLockFactory, com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode, boolean)
{
com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode v;
com.google.common.util.concurrent.CycleDetectingLockFactory v;
com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock v;
java.lang.Object v;
boolean v;
v := @this: com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock;
v := @parameter: com.google.common.util.concurrent.CycleDetectingLockFactory;
v := @parameter: com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode;
v := @parameter: boolean;
v.<com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock: com.google.common.util.concurrent.CycleDetectingLockFactory this$0> = v;
specialinvoke v.<java.util.concurrent.locks.ReentrantLock: void <init>(boolean)>(v);
v = staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v.<com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock: com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode lockGraphNode> = v;
return;
}
public com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode getLockGraphNode()
{
com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode v;
com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock v;
v := @this: com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock;
v = v.<com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock: com.google.common.util.concurrent.CycleDetectingLockFactory$LockGraphNode lockGraphNode>;
return v;
}
public boolean isAcquiredByCurrentThread()
{
boolean v;
com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock v;
v := @this: com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock;
v = virtualinvoke v.<com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock: boolean isHeldByCurrentThread()>();
return v;
}
public void lock()
{
java.lang.Throwable v;
com.google.common.util.concurrent.CycleDetectingLockFactory v;
com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock v;
v := @this: com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock;
v = v.<com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock: com.google.common.util.concurrent.CycleDetectingLockFactory this$0>;
specialinvoke v.<com.google.common.util.concurrent.CycleDetectingLockFactory: void aboutToAcquire(com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingLock)>(v);
label:
specialinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
staticinvoke <com.google.common.util.concurrent.CycleDetectingLockFactory: void lockStateChanged(com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingLock)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <com.google.common.util.concurrent.CycleDetectingLockFactory: void lockStateChanged(com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingLock)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void lockInterruptibly() throws java.lang.InterruptedException
{
java.lang.Throwable v;
com.google.common.util.concurrent.CycleDetectingLockFactory v;
com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock v;
v := @this: com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock;
v = v.<com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock: com.google.common.util.concurrent.CycleDetectingLockFactory this$0>;
specialinvoke v.<com.google.common.util.concurrent.CycleDetectingLockFactory: void aboutToAcquire(com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingLock)>(v);
label:
specialinvoke v.<java.util.concurrent.locks.ReentrantLock: void lockInterruptibly()>();
label:
staticinvoke <com.google.common.util.concurrent.CycleDetectingLockFactory: void lockStateChanged(com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingLock)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <com.google.common.util.concurrent.CycleDetectingLockFactory: void lockStateChanged(com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingLock)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public boolean tryLock()
{
java.lang.Throwable v;
com.google.common.util.concurrent.CycleDetectingLockFactory v;
com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock v;
boolean v;
v := @this: com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock;
v = v.<com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock: com.google.common.util.concurrent.CycleDetectingLockFactory this$0>;
specialinvoke v.<com.google.common.util.concurrent.CycleDetectingLockFactory: void aboutToAcquire(com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingLock)>(v);
label:
v = specialinvoke v.<java.util.concurrent.locks.ReentrantLock: boolean tryLock()>();
label:
staticinvoke <com.google.common.util.concurrent.CycleDetectingLockFactory: void lockStateChanged(com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingLock)>(v);
return v;
label:
v := @caughtexception;
staticinvoke <com.google.common.util.concurrent.CycleDetectingLockFactory: void lockStateChanged(com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingLock)>(v);
throw v;
catch java.lang.Throwable from label to label with label;
}
public boolean tryLock(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException
{
java.lang.Throwable v;
java.util.concurrent.TimeUnit v;
com.google.common.util.concurrent.CycleDetectingLockFactory v;
com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock v;
long v;
boolean v;
v := @this: com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
v = v.<com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock: com.google.common.util.concurrent.CycleDetectingLockFactory this$0>;
specialinvoke v.<com.google.common.util.concurrent.CycleDetectingLockFactory: void aboutToAcquire(com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingLock)>(v);
label:
v = specialinvoke v.<java.util.concurrent.locks.ReentrantLock: boolean tryLock(long,java.util.concurrent.TimeUnit)>(v, v);
label:
staticinvoke <com.google.common.util.concurrent.CycleDetectingLockFactory: void lockStateChanged(com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingLock)>(v);
return v;
label:
v := @caughtexception;
staticinvoke <com.google.common.util.concurrent.CycleDetectingLockFactory: void lockStateChanged(com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingLock)>(v);
throw v;
catch java.lang.Throwable from label to label with label;
}
public void unlock()
{
java.lang.Throwable v;
com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock v;
v := @this: com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingReentrantLock;
label:
specialinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
label:
staticinvoke <com.google.common.util.concurrent.CycleDetectingLockFactory: void lockStateChanged(com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingLock)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <com.google.common.util.concurrent.CycleDetectingLockFactory: void lockStateChanged(com.google.common.util.concurrent.CycleDetectingLockFactory$CycleDetectingLock)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
}