class org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir extends java.lang.Object implements com.codahale.metrics.Reservoir
{
private static final int DEFAULT_SIZE;
private static final int BITS_PER_LONG;
private final java.util.concurrent.atomic.AtomicLong count;
private volatile java.util.concurrent.atomic.AtomicLongArray values;
void <init>()
{
java.util.concurrent.atomic.AtomicLong v;
org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir v;
java.util.concurrent.atomic.AtomicLongArray v;
v := @this: org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir: java.util.concurrent.atomic.AtomicLong count> = v;
v = new java.util.concurrent.atomic.AtomicLongArray;
specialinvoke v.<java.util.concurrent.atomic.AtomicLongArray: void <init>(int)>(4096);
v.<org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir: java.util.concurrent.atomic.AtomicLongArray values> = v;
return;
}
public int size()
{
long v;
java.util.concurrent.atomic.AtomicLong v;
byte v;
int v, v;
org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir v;
java.util.concurrent.atomic.AtomicLongArray v, v;
v := @this: org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir;
v = v.<org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir: java.util.concurrent.atomic.AtomicLong count>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
v = v.<org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir: java.util.concurrent.atomic.AtomicLongArray values>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLongArray: int length()>();
v = v cmp v;
if v <= 0 goto label;
v = v.<org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir: java.util.concurrent.atomic.AtomicLongArray values>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLongArray: int length()>();
return v;
label:
return v;
}
public void update(long)
{
long v, v, v;
java.util.concurrent.atomic.AtomicLong v;
byte v, v;
int v, v, v;
org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir v;
java.util.concurrent.atomic.AtomicLongArray v, v, v, v;
v := @this: org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir;
v := @parameter: long;
v = v.<org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir: java.util.concurrent.atomic.AtomicLong count>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long incrementAndGet()>();
v = v.<org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir: java.util.concurrent.atomic.AtomicLongArray values>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLongArray: int length()>();
v = v cmp v;
if v > 0 goto label;
v = v.<org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir: java.util.concurrent.atomic.AtomicLongArray values>;
v = v - 1;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLongArray: void set(int,long)>(v, v);
goto label;
label:
v = staticinvoke <org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir: long nextLong(long)>(v);
v = v.<org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir: java.util.concurrent.atomic.AtomicLongArray values>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLongArray: int length()>();
v = v cmp v;
if v >= 0 goto label;
v = v.<org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir: java.util.concurrent.atomic.AtomicLongArray values>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLongArray: void set(int,long)>(v, v);
label:
return;
}
private static long nextLong(long)
{
long v, v, v, v, v, v, v;
byte v;
java.util.concurrent.ThreadLocalRandom v;
v := @parameter: long;
label:
v = staticinvoke <java.util.concurrent.ThreadLocalRandom: java.util.concurrent.ThreadLocalRandom current()>();
v = virtualinvoke v.<java.util.concurrent.ThreadLocalRandom: long nextLong()>();
v = v & 9223372036854775807L;
v = v % v;
v = v - v;
v = v - 1L;
v = v + v;
v = v cmp 0L;
if v < 0 goto label;
return v;
}
public com.codahale.metrics.Snapshot getSnapshot()
{
com.codahale.metrics.UniformSnapshot v;
long v;
java.util.ArrayList v;
java.lang.Long v;
int v, v;
org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir v;
java.util.concurrent.atomic.AtomicLongArray v;
v := @this: org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir;
v = virtualinvoke v.<org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir: int size()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
v = 0;
label:
if v >= v goto label;
v = v.<org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir: java.util.concurrent.atomic.AtomicLongArray values>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLongArray: long get(int)>(v);
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
v = new com.codahale.metrics.UniformSnapshot;
specialinvoke v.<com.codahale.metrics.UniformSnapshot: void <init>(java.util.Collection)>(v);
return v;
}
public void reset()
{
java.util.concurrent.atomic.AtomicLong v;
org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir v;
java.util.concurrent.atomic.AtomicLongArray v;
v := @this: org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir;
v = v.<org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir: java.util.concurrent.atomic.AtomicLong count>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: void set(long)>(0L);
v = new java.util.concurrent.atomic.AtomicLongArray;
specialinvoke v.<java.util.concurrent.atomic.AtomicLongArray: void <init>(int)>(4096);
v.<org.apache.zookeeper.server.metric.AvgMinMaxPercentileCounter$ResettableUniformReservoir: java.util.concurrent.atomic.AtomicLongArray values> = v;
return;
}
}