public class oadd.org.apache.hadoop.util.InstrumentedLock extends java.lang.Object implements java.util.concurrent.locks.Lock
{
private final java.util.concurrent.locks.Lock lock;
private final org.slf4j.Logger logger;
private final java.lang.String name;
private final oadd.org.apache.hadoop.util.Timer clock;
private final long minLoggingGap;
private final long lockWarningThreshold;
private volatile long lockAcquireTimestamp;
private final java.util.concurrent.atomic.AtomicLong lastLogTimestamp;
private final java.util.concurrent.atomic.AtomicLong warningsSuppressed;
public void <init>(java.lang.String, org.slf4j.Logger, long, long)
{
org.slf4j.Logger v;
java.util.concurrent.locks.ReentrantLock v;
long v, v;
java.lang.String v;
oadd.org.apache.hadoop.util.InstrumentedLock v;
v := @this: oadd.org.apache.hadoop.util.InstrumentedLock;
v := @parameter: java.lang.String;
v := @parameter: org.slf4j.Logger;
v := @parameter: long;
v := @parameter: long;
v = new java.util.concurrent.locks.ReentrantLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantLock: void <init>()>();
specialinvoke v.<oadd.org.apache.hadoop.util.InstrumentedLock: void <init>(java.lang.String,org.slf4j.Logger,java.util.concurrent.locks.Lock,long,long)>(v, v, v, v, v);
return;
}
public void <init>(java.lang.String, org.slf4j.Logger, java.util.concurrent.locks.Lock, long, long)
{
java.util.concurrent.locks.Lock v;
oadd.org.apache.hadoop.util.Timer v;
org.slf4j.Logger v;
long v, v;
java.lang.String v;
oadd.org.apache.hadoop.util.InstrumentedLock v;
v := @this: oadd.org.apache.hadoop.util.InstrumentedLock;
v := @parameter: java.lang.String;
v := @parameter: org.slf4j.Logger;
v := @parameter: java.util.concurrent.locks.Lock;
v := @parameter: long;
v := @parameter: long;
v = new oadd.org.apache.hadoop.util.Timer;
specialinvoke v.<oadd.org.apache.hadoop.util.Timer: void <init>()>();
specialinvoke v.<oadd.org.apache.hadoop.util.InstrumentedLock: void <init>(java.lang.String,org.slf4j.Logger,java.util.concurrent.locks.Lock,long,long,oadd.org.apache.hadoop.util.Timer)>(v, v, v, v, v, v);
return;
}
void <init>(java.lang.String, org.slf4j.Logger, java.util.concurrent.locks.Lock, long, long, oadd.org.apache.hadoop.util.Timer)
{
org.slf4j.Logger v;
long v, v, v, v, v, v, v;
oadd.org.apache.hadoop.util.InstrumentedLock v;
java.util.concurrent.atomic.AtomicLong v, v;
java.util.concurrent.locks.Lock v;
oadd.org.apache.hadoop.util.Timer v;
java.lang.String v;
v := @this: oadd.org.apache.hadoop.util.InstrumentedLock;
v := @parameter: java.lang.String;
v := @parameter: org.slf4j.Logger;
v := @parameter: java.util.concurrent.locks.Lock;
v := @parameter: long;
v := @parameter: long;
v := @parameter: oadd.org.apache.hadoop.util.Timer;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>(long)>(0L);
v.<oadd.org.apache.hadoop.util.InstrumentedLock: java.util.concurrent.atomic.AtomicLong warningsSuppressed> = v;
v.<oadd.org.apache.hadoop.util.InstrumentedLock: java.lang.String name> = v;
v.<oadd.org.apache.hadoop.util.InstrumentedLock: java.util.concurrent.locks.Lock lock> = v;
v.<oadd.org.apache.hadoop.util.InstrumentedLock: oadd.org.apache.hadoop.util.Timer clock> = v;
v.<oadd.org.apache.hadoop.util.InstrumentedLock: org.slf4j.Logger logger> = v;
v.<oadd.org.apache.hadoop.util.InstrumentedLock: long minLoggingGap> = v;
v.<oadd.org.apache.hadoop.util.InstrumentedLock: long lockWarningThreshold> = v;
v = new java.util.concurrent.atomic.AtomicLong;
v = virtualinvoke v.<oadd.org.apache.hadoop.util.Timer: long monotonicNow()>();
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: long minLoggingGap>;
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: long lockWarningThreshold>;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
v = v - v;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>(long)>(v);
v.<oadd.org.apache.hadoop.util.InstrumentedLock: java.util.concurrent.atomic.AtomicLong lastLogTimestamp> = v;
return;
}
public void lock()
{
java.util.concurrent.locks.Lock v;
oadd.org.apache.hadoop.util.InstrumentedLock v;
v := @this: oadd.org.apache.hadoop.util.InstrumentedLock;
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: java.util.concurrent.locks.Lock lock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
virtualinvoke v.<oadd.org.apache.hadoop.util.InstrumentedLock: void startLockTiming()>();
return;
}
public void lockInterruptibly() throws java.lang.InterruptedException
{
java.util.concurrent.locks.Lock v;
oadd.org.apache.hadoop.util.InstrumentedLock v;
v := @this: oadd.org.apache.hadoop.util.InstrumentedLock;
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: java.util.concurrent.locks.Lock lock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lockInterruptibly()>();
virtualinvoke v.<oadd.org.apache.hadoop.util.InstrumentedLock: void startLockTiming()>();
return;
}
public boolean tryLock()
{
java.util.concurrent.locks.Lock v;
oadd.org.apache.hadoop.util.InstrumentedLock v;
boolean v;
v := @this: oadd.org.apache.hadoop.util.InstrumentedLock;
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: java.util.concurrent.locks.Lock lock>;
v = interfaceinvoke v.<java.util.concurrent.locks.Lock: boolean tryLock()>();
if v == 0 goto label;
virtualinvoke v.<oadd.org.apache.hadoop.util.InstrumentedLock: void startLockTiming()>();
return 1;
label:
return 0;
}
public boolean tryLock(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException
{
java.util.concurrent.TimeUnit v;
java.util.concurrent.locks.Lock v;
long v;
oadd.org.apache.hadoop.util.InstrumentedLock v;
boolean v;
v := @this: oadd.org.apache.hadoop.util.InstrumentedLock;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: java.util.concurrent.locks.Lock lock>;
v = interfaceinvoke v.<java.util.concurrent.locks.Lock: boolean tryLock(long,java.util.concurrent.TimeUnit)>(v, v);
if v == 0 goto label;
virtualinvoke v.<oadd.org.apache.hadoop.util.InstrumentedLock: void startLockTiming()>();
return 1;
label:
return 0;
}
public void unlock()
{
java.util.concurrent.locks.Lock v;
oadd.org.apache.hadoop.util.Timer v;
long v, v;
oadd.org.apache.hadoop.util.InstrumentedLock v;
v := @this: oadd.org.apache.hadoop.util.InstrumentedLock;
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: oadd.org.apache.hadoop.util.Timer clock>;
v = virtualinvoke v.<oadd.org.apache.hadoop.util.Timer: long monotonicNow()>();
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: long lockAcquireTimestamp>;
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: java.util.concurrent.locks.Lock lock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
virtualinvoke v.<oadd.org.apache.hadoop.util.InstrumentedLock: void check(long,long)>(v, v);
return;
}
public java.util.concurrent.locks.Condition newCondition()
{
java.util.concurrent.locks.Condition v;
java.util.concurrent.locks.Lock v;
oadd.org.apache.hadoop.util.InstrumentedLock v;
v := @this: oadd.org.apache.hadoop.util.InstrumentedLock;
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: java.util.concurrent.locks.Lock lock>;
v = interfaceinvoke v.<java.util.concurrent.locks.Lock: java.util.concurrent.locks.Condition newCondition()>();
return v;
}
void logWarning(long, long)
{
java.lang.Object[] v;
org.slf4j.Logger v;
long v, v;
oadd.org.apache.hadoop.util.InstrumentedLock v;
java.lang.Long v, v;
java.lang.Thread v;
java.lang.String v, v, v;
v := @this: oadd.org.apache.hadoop.util.InstrumentedLock;
v := @parameter: long;
v := @parameter: long;
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: org.slf4j.Logger logger>;
v = newarray (java.lang.Object)[4];
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: java.lang.String name>;
v[0] = v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[1] = v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[2] = v;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = staticinvoke <oadd.org.apache.hadoop.util.StringUtils: java.lang.String getStackTrace(java.lang.Thread)>(v);
v[3] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Lock held time above threshold: lock identifier: %s lockHeldTimeMs=%d ms. Suppressed %d lock warnings. The stack trace is: %s", v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
return;
}
protected void startLockTiming()
{
long v;
oadd.org.apache.hadoop.util.Timer v;
oadd.org.apache.hadoop.util.InstrumentedLock v;
v := @this: oadd.org.apache.hadoop.util.InstrumentedLock;
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: oadd.org.apache.hadoop.util.Timer clock>;
v = virtualinvoke v.<oadd.org.apache.hadoop.util.Timer: long monotonicNow()>();
v.<oadd.org.apache.hadoop.util.InstrumentedLock: long lockAcquireTimestamp> = v;
return;
}
protected void check(long, long)
{
long v, v, v, v, v, v, v, v, v, v, v;
oadd.org.apache.hadoop.util.InstrumentedLock v;
byte v, v;
boolean v, v;
org.slf4j.Logger v;
java.util.concurrent.atomic.AtomicLong v, v, v, v;
oadd.org.apache.hadoop.util.Timer v;
v := @this: oadd.org.apache.hadoop.util.InstrumentedLock;
v := @parameter: long;
v := @parameter: long;
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: org.slf4j.Logger logger>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isWarnEnabled()>();
if v != 0 goto label;
return;
label:
v = v - v;
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: long lockWarningThreshold>;
v = v - v;
v = v cmp 0L;
if v >= 0 goto label;
label:
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: oadd.org.apache.hadoop.util.Timer clock>;
v = virtualinvoke v.<oadd.org.apache.hadoop.util.Timer: long monotonicNow()>();
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: java.util.concurrent.atomic.AtomicLong lastLogTimestamp>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = v - v;
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: long minLoggingGap>;
v = v - v;
v = v cmp 0L;
if v >= 0 goto label;
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: java.util.concurrent.atomic.AtomicLong warningsSuppressed>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long incrementAndGet()>();
return;
label:
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: java.util.concurrent.atomic.AtomicLong lastLogTimestamp>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: boolean compareAndSet(long,long)>(v, v);
if v == 0 goto label;
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: java.util.concurrent.atomic.AtomicLong warningsSuppressed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long getAndSet(long)>(0L);
virtualinvoke v.<oadd.org.apache.hadoop.util.InstrumentedLock: void logWarning(long,long)>(v, v);
label:
return;
}
protected java.util.concurrent.locks.Lock getLock()
{
java.util.concurrent.locks.Lock v;
oadd.org.apache.hadoop.util.InstrumentedLock v;
v := @this: oadd.org.apache.hadoop.util.InstrumentedLock;
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: java.util.concurrent.locks.Lock lock>;
return v;
}
protected oadd.org.apache.hadoop.util.Timer getTimer()
{
oadd.org.apache.hadoop.util.Timer v;
oadd.org.apache.hadoop.util.InstrumentedLock v;
v := @this: oadd.org.apache.hadoop.util.InstrumentedLock;
v = v.<oadd.org.apache.hadoop.util.InstrumentedLock: oadd.org.apache.hadoop.util.Timer clock>;
return v;
}
}