public final class org.apache.logging.log4j.core.util.CachedClock extends java.lang.Object implements org.apache.logging.log4j.core.util.Clock
{
private static final int UPDATE_THRESHOLD;
private static volatile org.apache.logging.log4j.core.util.CachedClock instance;
private static final java.lang.Object INSTANCE_LOCK;
private volatile long millis;
private short count;
private void <init>()
{
org.apache.logging.log4j.core.util.CachedClock v;
long v;
org.apache.logging.log4j.core.util.Log4jThread v;
java.lang.Runnable v;
v := @this: org.apache.logging.log4j.core.util.CachedClock;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v.<org.apache.logging.log4j.core.util.CachedClock: long millis> = v;
v.<org.apache.logging.log4j.core.util.CachedClock: short count> = 0;
v = new org.apache.logging.log4j.core.util.Log4jThread;
v = staticinvoke <org.apache.logging.log4j.core.util.CachedClock$lambda_new_0__936: java.lang.Runnable bootstrap$(org.apache.logging.log4j.core.util.CachedClock)>(v);
specialinvoke v.<org.apache.logging.log4j.core.util.Log4jThread: void <init>(java.lang.Runnable,java.lang.String)>(v, "CachedClock Updater Thread");
virtualinvoke v.<java.lang.Thread: void setDaemon(boolean)>(1);
virtualinvoke v.<java.lang.Thread: void start()>();
return;
}
public static org.apache.logging.log4j.core.util.CachedClock instance()
{
java.lang.Throwable v;
org.apache.logging.log4j.core.util.CachedClock v, v;
java.lang.Object v;
v = <org.apache.logging.log4j.core.util.CachedClock: org.apache.logging.log4j.core.util.CachedClock instance>;
if v != null goto label;
v = <org.apache.logging.log4j.core.util.CachedClock: java.lang.Object INSTANCE_LOCK>;
entermonitor v;
label:
v = <org.apache.logging.log4j.core.util.CachedClock: org.apache.logging.log4j.core.util.CachedClock instance>;
if v != null goto label;
v = new org.apache.logging.log4j.core.util.CachedClock;
specialinvoke v.<org.apache.logging.log4j.core.util.CachedClock: void <init>()>();
v = v;
<org.apache.logging.log4j.core.util.CachedClock: org.apache.logging.log4j.core.util.CachedClock instance> = v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
public long currentTimeMillis()
{
short v, v;
org.apache.logging.log4j.core.util.CachedClock v;
int v;
long v, v;
v := @this: org.apache.logging.log4j.core.util.CachedClock;
v = v.<org.apache.logging.log4j.core.util.CachedClock: short count>;
v = v + 1;
v.<org.apache.logging.log4j.core.util.CachedClock: short count> = v;
if v <= 1000 goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v.<org.apache.logging.log4j.core.util.CachedClock: long millis> = v;
v.<org.apache.logging.log4j.core.util.CachedClock: short count> = 0;
label:
v = v.<org.apache.logging.log4j.core.util.CachedClock: long millis>;
return v;
}
static void <clinit>()
{
java.lang.Object v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
<org.apache.logging.log4j.core.util.CachedClock: java.lang.Object INSTANCE_LOCK> = v;
return;
}
}