final class org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel extends java.lang.Object
{
static final int[] BUCKETS;
static final long[] SPANS;
static final long[] SHIFT;
final org.apache.camel.com.github.benmanes.caffeine.cache.BoundedLocalCache cache;
final org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel;
long nanos;
void <init>(org.apache.camel.com.github.benmanes.caffeine.cache.BoundedLocalCache)
{
org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] v, v, v, v, v;
org.apache.camel.com.github.benmanes.caffeine.cache.BoundedLocalCache v;
int[] v, v;
int v, v, v, v, v, v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node[] v, v, v;
org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel$Sentinel v;
java.lang.Object v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel;
v := @parameter: org.apache.camel.com.github.benmanes.caffeine.cache.BoundedLocalCache;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.BoundedLocalCache cache> = v;
v = <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: int[] BUCKETS>;
v = lengthof v;
v = newmultiarray (org.apache.camel.com.github.benmanes.caffeine.cache.Node)[v][1];
v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel> = v;
v = 0;
label:
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel>;
v = lengthof v;
if v >= v goto label;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel>;
v = <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: int[] BUCKETS>;
v = v[v];
v = newarray (org.apache.camel.com.github.benmanes.caffeine.cache.Node)[v];
v[v] = v;
v = 0;
label:
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel>;
v = v[v];
v = lengthof v;
if v >= v goto label;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel>;
v = v[v];
v = new org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel$Sentinel;
specialinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel$Sentinel: void <init>()>();
v[v] = v;
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
return;
}
public void advance(long)
{
java.lang.Throwable v;
long v, v, v, v, v, v, v;
org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel v;
long[] v, v, v;
byte v;
int v, v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel;
v := @parameter: long;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long nanos>;
label:
v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long nanos> = v;
v = 0;
label:
v = <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long[] SHIFT>;
v = lengthof v;
if v >= v goto label;
v = <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long[] SHIFT>;
v = v[v];
v = v >> v;
v = <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long[] SHIFT>;
v = v[v];
v = v >> v;
v = v - v;
v = v cmp 0L;
if v <= 0 goto label;
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: void expire(int,long,long)>(v, v, v);
v = v + 1;
goto label;
label:
v := @caughtexception;
v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long nanos> = v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
void expire(int, long, long)
{
org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] v;
byte v, v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node[] v;
boolean v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node v, v, v, v, v, v, v;
org.apache.camel.com.github.benmanes.caffeine.cache.RemovalCause v;
java.lang.Throwable v;
long v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.camel.com.github.benmanes.caffeine.cache.BoundedLocalCache v;
long[] v;
int v, v, v, v, v, v, v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel;
v := @parameter: int;
v := @parameter: long;
v := @parameter: long;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel>;
v = v[v];
v = v - v;
v = lengthof v;
v = v cmp v;
if v < 0 goto label;
v = lengthof v;
goto label;
label:
v = <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long[] SPANS>;
v = v[v];
v = v - 1L;
v = v & v;
v = v & v;
v = 1 + v;
label:
v = lengthof v;
v = v - 1;
v = v;
label:
if v >= v goto label;
v = v & v;
v = v[v];
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: org.apache.camel.com.github.benmanes.caffeine.cache.Node getPreviousInVariableOrder()>();
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: org.apache.camel.com.github.benmanes.caffeine.cache.Node getNextInVariableOrder()>();
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: void setPreviousInVariableOrder(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v);
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: void setNextInVariableOrder(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v);
label:
if v == v goto label;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: org.apache.camel.com.github.benmanes.caffeine.cache.Node getNextInVariableOrder()>();
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: void setPreviousInVariableOrder(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(null);
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: void setNextInVariableOrder(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(null);
label:
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: long getVariableTime()>();
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long nanos>;
v = v - v;
v = v cmp 0L;
if v > 0 goto label;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.BoundedLocalCache cache>;
v = <org.apache.camel.com.github.benmanes.caffeine.cache.RemovalCause: org.apache.camel.com.github.benmanes.caffeine.cache.RemovalCause EXPIRED>;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long nanos>;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.BoundedLocalCache: boolean evictEntry(org.apache.camel.com.github.benmanes.caffeine.cache.Node,org.apache.camel.com.github.benmanes.caffeine.cache.RemovalCause,long)>(v, v, v);
if v != 0 goto label;
label:
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: long getVariableTime()>();
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node findBucket(long)>(v);
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: void link(org.apache.camel.com.github.benmanes.caffeine.cache.Node,org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v, v);
label:
v = v;
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: org.apache.camel.com.github.benmanes.caffeine.cache.Node getPreviousInVariableOrder()>();
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: void setPreviousInVariableOrder(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v);
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: void setNextInVariableOrder(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v);
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: org.apache.camel.com.github.benmanes.caffeine.cache.Node getPreviousInVariableOrder()>();
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: void setNextInVariableOrder(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v);
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: void setPreviousInVariableOrder(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v);
throw v;
label:
v = v + 1;
goto label;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void schedule(org.apache.camel.com.github.benmanes.caffeine.cache.Node)
{
long v;
org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node v, v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel;
v := @parameter: org.apache.camel.com.github.benmanes.caffeine.cache.Node;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: long getVariableTime()>();
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node findBucket(long)>(v);
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: void link(org.apache.camel.com.github.benmanes.caffeine.cache.Node,org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v, v);
return;
}
public void reschedule(org.apache.camel.com.github.benmanes.caffeine.cache.Node)
{
org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node v, v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel;
v := @parameter: org.apache.camel.com.github.benmanes.caffeine.cache.Node;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: org.apache.camel.com.github.benmanes.caffeine.cache.Node getNextInVariableOrder()>();
if v == null goto label;
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: void unlink(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v);
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: void schedule(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v);
label:
return;
}
public void deschedule(org.apache.camel.com.github.benmanes.caffeine.cache.Node)
{
org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel;
v := @parameter: org.apache.camel.com.github.benmanes.caffeine.cache.Node;
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: void unlink(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v);
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: void setNextInVariableOrder(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(null);
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: void setPreviousInVariableOrder(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(null);
return;
}
org.apache.camel.com.github.benmanes.caffeine.cache.Node findBucket(long)
{
long v, v, v, v, v, v;
org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] v, v, v, v;
long[] v, v;
byte v;
int v, v, v, v, v, v, v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node[] v, v, v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node v, v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel;
v := @parameter: long;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long nanos>;
v = v - v;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel>;
v = lengthof v;
v = v - 1;
v = 0;
label:
if v >= v goto label;
v = <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long[] SPANS>;
v = v + 1;
v = v[v];
v = v cmp v;
if v >= 0 goto label;
v = <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long[] SHIFT>;
v = v[v];
v = v >> v;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel>;
v = v[v];
v = lengthof v;
v = v - 1;
v = v & v;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel>;
v = v[v];
v = v[v];
return v;
label:
v = v + 1;
goto label;
label:
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel>;
v = v[v];
v = v[0];
return v;
}
void link(org.apache.camel.com.github.benmanes.caffeine.cache.Node, org.apache.camel.com.github.benmanes.caffeine.cache.Node)
{
org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node v, v, v, v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel;
v := @parameter: org.apache.camel.com.github.benmanes.caffeine.cache.Node;
v := @parameter: org.apache.camel.com.github.benmanes.caffeine.cache.Node;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: org.apache.camel.com.github.benmanes.caffeine.cache.Node getPreviousInVariableOrder()>();
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: void setPreviousInVariableOrder(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v);
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: void setNextInVariableOrder(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v);
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: org.apache.camel.com.github.benmanes.caffeine.cache.Node getPreviousInVariableOrder()>();
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: void setNextInVariableOrder(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v);
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: void setPreviousInVariableOrder(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v);
return;
}
void unlink(org.apache.camel.com.github.benmanes.caffeine.cache.Node)
{
org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node v, v, v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel;
v := @parameter: org.apache.camel.com.github.benmanes.caffeine.cache.Node;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: org.apache.camel.com.github.benmanes.caffeine.cache.Node getNextInVariableOrder()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: org.apache.camel.com.github.benmanes.caffeine.cache.Node getPreviousInVariableOrder()>();
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: void setPreviousInVariableOrder(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v);
virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: void setNextInVariableOrder(org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v);
label:
return;
}
public java.util.Map snapshot(boolean, int, java.util.function.Function)
{
org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] v, v, v, v, v;
java.util.Map v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node[] v, v, v;
boolean v, v, v, v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node v, v;
long v, v, v;
java.util.function.Function v;
java.util.LinkedHashMap v;
org.apache.camel.com.github.benmanes.caffeine.cache.BoundedLocalCache v;
long[] v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Object v, v, v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel;
v := @parameter: boolean;
v := @parameter: int;
v := @parameter: java.util.function.Function;
if v < 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.apache.camel.com.github.benmanes.caffeine.cache.Caffeine: void requireArgument(boolean)>(v);
v = new java.util.LinkedHashMap;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.BoundedLocalCache cache>;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.BoundedLocalCache: int size()>();
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
specialinvoke v.<java.util.LinkedHashMap: void <init>(int)>(v);
if v == 0 goto label;
v = 0;
goto label;
label:
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel>;
v = lengthof v;
v = v - 1;
label:
v = v;
v = 0;
label:
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel>;
v = lengthof v;
if v >= v goto label;
if v == 0 goto label;
v = v;
goto label;
label:
v = neg v;
label:
v = v + v;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long nanos>;
v = <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long[] SHIFT>;
v = v[v];
v = v >> v;
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel>;
v = v[v];
v = lengthof v;
v = v - 1;
v = v & v;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v + v;
v = 0;
label:
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel>;
v = v[v];
v = lengthof v;
if v >= v goto label;
if v == 0 goto label;
v = v;
goto label;
label:
v = neg v;
label:
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel>;
v = v[v];
v = v + v;
v = v & v;
v = v[v];
v = staticinvoke <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node traverse(boolean,org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v, v);
label:
if v == v goto label;
v = interfaceinvoke v.<java.util.Map: int size()>();
if v >= v goto label;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: java.lang.Object getKey()>();
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.function.Function: java.lang.Object apply(java.lang.Object)>(v);
if v == null goto label;
if v == null goto label;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: boolean isAlive()>();
if v == 0 goto label;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
v = staticinvoke <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node traverse(boolean,org.apache.camel.com.github.benmanes.caffeine.cache.Node)>(v, v);
goto label;
label:
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
v = staticinvoke <java.util.Collections: java.util.Map unmodifiableMap(java.util.Map)>(v);
return v;
}
static org.apache.camel.com.github.benmanes.caffeine.cache.Node traverse(boolean, org.apache.camel.com.github.benmanes.caffeine.cache.Node)
{
boolean v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node v, v;
v := @parameter: boolean;
v := @parameter: org.apache.camel.com.github.benmanes.caffeine.cache.Node;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: org.apache.camel.com.github.benmanes.caffeine.cache.Node getNextInVariableOrder()>();
goto label;
label:
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: org.apache.camel.com.github.benmanes.caffeine.cache.Node getPreviousInVariableOrder()>();
label:
return v;
}
public java.lang.String toString()
{
org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel v;
java.lang.Integer v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] v, v, v, v;
java.util.ArrayList v;
int v, v, v, v, v, v, v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node[] v, v, v;
java.lang.String v;
boolean v;
org.apache.camel.com.github.benmanes.caffeine.cache.Node v, v, v;
java.util.TreeMap v;
java.lang.Object v;
java.lang.StringBuilder v, v, v, v, v, v;
v := @this: org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = 0;
label:
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel>;
v = lengthof v;
if v >= v goto label;
v = new java.util.TreeMap;
specialinvoke v.<java.util.TreeMap: void <init>()>();
v = 0;
label:
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel>;
v = v[v];
v = lengthof v;
if v >= v goto label;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel>;
v = v[v];
v = v[v];
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: org.apache.camel.com.github.benmanes.caffeine.cache.Node getNextInVariableOrder()>();
label:
v = v.<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: org.apache.camel.com.github.benmanes.caffeine.cache.Node[][] wheel>;
v = v[v];
v = v[v];
if v == v goto label;
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: java.lang.Object getKey()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.camel.com.github.benmanes.caffeine.cache.Node: org.apache.camel.com.github.benmanes.caffeine.cache.Node getNextInVariableOrder()>();
goto label;
label:
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("Wheel #");
v = v + 1;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(": ");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(10);
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: int length()>();
v = v - 1;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder deleteCharAt(int)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
static long ceilingPowerOfTwo(long)
{
int v, v;
long v, v, v;
v := @parameter: long;
v = v - 1L;
v = staticinvoke <java.lang.Long: int numberOfLeadingZeros(long)>(v);
v = neg v;
v = 1L << v;
return v;
}
static void <clinit>()
{
int[] v, v, v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
long[] v, v, v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v;
java.util.concurrent.TimeUnit v, v, v, v, v, v;
v = newarray (int)[5];
v[0] = 64;
v[1] = 64;
v[2] = 32;
v[3] = 4;
v[4] = 1;
<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: int[] BUCKETS> = v;
v = newarray (long)[6];
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(1L);
v = staticinvoke <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long ceilingPowerOfTwo(long)>(v);
v[0] = v;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MINUTES>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(1L);
v = staticinvoke <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long ceilingPowerOfTwo(long)>(v);
v[1] = v;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit HOURS>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(1L);
v = staticinvoke <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long ceilingPowerOfTwo(long)>(v);
v[2] = v;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit DAYS>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(1L);
v = staticinvoke <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long ceilingPowerOfTwo(long)>(v);
v[3] = v;
v = <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: int[] BUCKETS>;
v = v[3];
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit DAYS>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(1L);
v = staticinvoke <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long ceilingPowerOfTwo(long)>(v);
v = v * v;
v[4] = v;
v = <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: int[] BUCKETS>;
v = v[3];
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit DAYS>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(1L);
v = staticinvoke <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long ceilingPowerOfTwo(long)>(v);
v = v * v;
v[5] = v;
<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long[] SPANS> = v;
v = newarray (long)[5];
v = <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long[] SPANS>;
v = v[0];
v = v - 1L;
v = staticinvoke <java.lang.Long: int numberOfLeadingZeros(long)>(v);
v = 64 - v;
v[0] = v;
v = <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long[] SPANS>;
v = v[1];
v = v - 1L;
v = staticinvoke <java.lang.Long: int numberOfLeadingZeros(long)>(v);
v = 64 - v;
v[1] = v;
v = <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long[] SPANS>;
v = v[2];
v = v - 1L;
v = staticinvoke <java.lang.Long: int numberOfLeadingZeros(long)>(v);
v = 64 - v;
v[2] = v;
v = <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long[] SPANS>;
v = v[3];
v = v - 1L;
v = staticinvoke <java.lang.Long: int numberOfLeadingZeros(long)>(v);
v = 64 - v;
v[3] = v;
v = <org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long[] SPANS>;
v = v[4];
v = v - 1L;
v = staticinvoke <java.lang.Long: int numberOfLeadingZeros(long)>(v);
v = 64 - v;
v[4] = v;
<org.apache.camel.com.github.benmanes.caffeine.cache.TimerWheel: long[] SHIFT> = v;
return;
}
}