final class org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue extends org.jctools.queues.MpscArrayQueue implements java.util.concurrent.BlockingQueue
{
private final org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$WaitStrategy waitStrategy;
void <init>(int, org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$WaitStrategy)
{
int v;
org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue v;
org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$WaitStrategy v;
v := @this: org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue;
v := @parameter: int;
v := @parameter: org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$WaitStrategy;
specialinvoke v.<org.jctools.queues.MpscArrayQueue: void <init>(int)>(v);
v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue: org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$WaitStrategy waitStrategy> = v;
return;
}
public int drainTo(java.util.Collection)
{
org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue v;
java.util.Collection v;
int v, v;
v := @this: org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue;
v := @parameter: java.util.Collection;
v = virtualinvoke v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue: int capacity()>();
v = virtualinvoke v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue: int drainTo(java.util.Collection,int)>(v, v);
return v;
}
public int drainTo(java.util.Collection, int)
{
org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue v;
java.util.Collection v;
int v, v;
org.jctools.queues.MessagePassingQueue$Consumer v;
v := @this: org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue;
v := @parameter: java.util.Collection;
v := @parameter: int;
v = staticinvoke <org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue$lambda_drainTo_0__901: org.jctools.queues.MessagePassingQueue$Consumer bootstrap$(java.util.Collection)>(v);
v = virtualinvoke v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue: int drain(org.jctools.queues.MessagePassingQueue$Consumer,int)>(v, v);
return v;
}
public boolean offer(java.lang.Object, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException
{
org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue v;
org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$WaitStrategy v;
long v, v, v, v, v, v;
java.util.concurrent.TimeUnit v;
byte v;
java.lang.InterruptedException v;
int v;
java.lang.Object v;
boolean v, v;
v := @this: org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue;
v := @parameter: java.lang.Object;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
v = 0;
v = staticinvoke <java.lang.System: long nanoTime()>();
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(v);
v = v + v;
label:
v = virtualinvoke v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue: boolean offer(java.lang.Object)>(v);
if v == 0 goto label;
return 1;
label:
v = staticinvoke <java.lang.System: long nanoTime()>();
v = v - v;
v = v cmp 0L;
if v <= 0 goto label;
return 0;
label:
v = v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue: org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$WaitStrategy waitStrategy>;
v = specialinvoke v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$WaitStrategy: int idle(int)>(v);
v = staticinvoke <java.lang.Thread: boolean interrupted()>();
if v == 0 goto label;
v = new java.lang.InterruptedException;
specialinvoke v.<java.lang.InterruptedException: void <init>()>();
throw v;
}
public java.lang.Object poll(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException
{
org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue v;
org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$WaitStrategy v;
long v, v, v, v, v, v;
java.util.concurrent.TimeUnit v;
byte v;
java.lang.InterruptedException v;
int v;
java.lang.Object v;
boolean v;
v := @this: org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
v = 0;
v = staticinvoke <java.lang.System: long nanoTime()>();
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(v);
v = v + v;
label:
v = virtualinvoke v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue: java.lang.Object poll()>();
if v == null goto label;
return v;
label:
v = staticinvoke <java.lang.System: long nanoTime()>();
v = v - v;
v = v cmp 0L;
if v <= 0 goto label;
return null;
label:
v = v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue: org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$WaitStrategy waitStrategy>;
v = specialinvoke v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$WaitStrategy: int idle(int)>(v);
v = staticinvoke <java.lang.Thread: boolean interrupted()>();
if v == 0 goto label;
v = new java.lang.InterruptedException;
specialinvoke v.<java.lang.InterruptedException: void <init>()>();
throw v;
}
public void put(java.lang.Object) throws java.lang.InterruptedException
{
org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue v;
java.lang.InterruptedException v;
org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$WaitStrategy v;
int v;
java.lang.Object v;
boolean v, v;
v := @this: org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue;
v := @parameter: java.lang.Object;
v = 0;
label:
v = virtualinvoke v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue: boolean offer(java.lang.Object)>(v);
if v == 0 goto label;
return;
label:
v = v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue: org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$WaitStrategy waitStrategy>;
v = specialinvoke v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$WaitStrategy: int idle(int)>(v);
v = staticinvoke <java.lang.Thread: boolean interrupted()>();
if v == 0 goto label;
v = new java.lang.InterruptedException;
specialinvoke v.<java.lang.InterruptedException: void <init>()>();
throw v;
}
public boolean offer(java.lang.Object)
{
org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue v;
int v, v;
java.lang.Object v;
boolean v;
v := @this: org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue: int capacity()>();
v = v - 32;
v = virtualinvoke v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue: boolean offerIfBelowThreshold(java.lang.Object,int)>(v, v);
return v;
}
public int remainingCapacity()
{
org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue v;
int v, v, v;
v := @this: org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue;
v = virtualinvoke v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue: int capacity()>();
v = virtualinvoke v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue: int size()>();
v = v - v;
return v;
}
public java.lang.Object take() throws java.lang.InterruptedException
{
org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue v;
java.lang.InterruptedException v;
org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$WaitStrategy v;
int v;
java.lang.Object v;
boolean v;
v := @this: org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue;
v = 100;
label:
v = virtualinvoke v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue: java.lang.Object relaxedPoll()>();
if v == null goto label;
return v;
label:
v = v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$MpscBlockingQueue: org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$WaitStrategy waitStrategy>;
v = specialinvoke v.<org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory$WaitStrategy: int idle(int)>(v);
v = staticinvoke <java.lang.Thread: boolean interrupted()>();
if v == 0 goto label;
v = new java.lang.InterruptedException;
specialinvoke v.<java.lang.InterruptedException: void <init>()>();
throw v;
}
}