public class org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool extends java.lang.Object
{
static final java.lang.String WAIT_TIME_SENSOR_NAME;
private final long totalMemory;
private final int poolableSize;
private final java.util.concurrent.locks.ReentrantLock lock;
private final java.util.Deque free;
private final java.util.Deque waiters;
private long nonPooledAvailableMemory;
private final org.apache.kafkaesqueesqueesque.common.metrics.Metrics metrics;
private final org.apache.kafkaesqueesqueesque.common.utils.Time time;
private final org.apache.kafkaesqueesqueesque.common.metrics.Sensor waitTime;
private boolean closed;
public void <init>(long, int, org.apache.kafkaesqueesqueesque.common.metrics.Metrics, org.apache.kafkaesqueesqueesque.common.utils.Time, java.lang.String)
{
org.apache.kafkaesqueesqueesque.common.metrics.Metrics v, v;
long v;
org.apache.kafkaesqueesqueesque.common.MetricName v, v;
int v;
java.lang.String v;
java.util.concurrent.locks.ReentrantLock v;
org.apache.kafkaesqueesqueesque.common.metrics.stats.Meter v;
org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool v;
java.util.concurrent.TimeUnit v;
org.apache.kafkaesqueesqueesque.common.metrics.Sensor v, v;
org.apache.kafkaesqueesqueesque.common.utils.Time v;
java.util.ArrayDeque v, v;
v := @this: org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool;
v := @parameter: long;
v := @parameter: int;
v := @parameter: org.apache.kafkaesqueesqueesque.common.metrics.Metrics;
v := @parameter: org.apache.kafkaesqueesqueesque.common.utils.Time;
v := @parameter: java.lang.String;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: int poolableSize> = v;
v = new java.util.concurrent.locks.ReentrantLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantLock: void <init>()>();
v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock> = v;
v = new java.util.ArrayDeque;
specialinvoke v.<java.util.ArrayDeque: void <init>()>();
v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque free> = v;
v = new java.util.ArrayDeque;
specialinvoke v.<java.util.ArrayDeque: void <init>()>();
v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque waiters> = v;
v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long totalMemory> = v;
v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory> = v;
v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: org.apache.kafkaesqueesqueesque.common.metrics.Metrics metrics> = v;
v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: org.apache.kafkaesqueesqueesque.common.utils.Time time> = v;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: org.apache.kafkaesqueesqueesque.common.metrics.Metrics metrics>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.metrics.Metrics: org.apache.kafkaesqueesqueesque.common.metrics.Sensor sensor(java.lang.String)>("bufferpool-wait-time");
v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: org.apache.kafkaesqueesqueesque.common.metrics.Sensor waitTime> = v;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.metrics.Metrics: org.apache.kafkaesqueesqueesque.common.MetricName metricName(java.lang.String,java.lang.String,java.lang.String)>("bufferpool-wait-ratio", v, "The fraction of time an appender waits for space allocation.");
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.metrics.Metrics: org.apache.kafkaesqueesqueesque.common.MetricName metricName(java.lang.String,java.lang.String,java.lang.String)>("bufferpool-wait-time-total", v, "The total time an appender waits for space allocation.");
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: org.apache.kafkaesqueesqueesque.common.metrics.Sensor waitTime>;
v = new org.apache.kafkaesqueesqueesque.common.metrics.stats.Meter;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit NANOSECONDS>;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.metrics.stats.Meter: void <init>(java.util.concurrent.TimeUnit,org.apache.kafkaesqueesqueesque.common.MetricName,org.apache.kafkaesqueesqueesque.common.MetricName)>(v, v, v);
virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.metrics.Sensor: boolean add(org.apache.kafkaesqueesqueesque.common.metrics.CompoundStat)>(v);
v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: boolean closed> = 0;
return;
}
public java.nio.ByteBuffer allocate(int, long) throws java.lang.InterruptedException
{
byte v, v, v, v, v;
org.apache.kafkaesqueesqueesque.common.KafkaException v, v;
org.apache.kafkaesqueesqueesque.common.errors.TimeoutException v;
org.apache.kafkaesqueesqueesque.common.utils.Time v, v, v;
java.lang.Throwable v, v, v, 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, v, v;
java.lang.String v, v;
java.nio.ByteBuffer v;
boolean v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool v;
java.util.Deque v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v;
java.util.concurrent.locks.ReentrantLock v, v, v, v, v, v, v, v, v;
java.lang.IllegalArgumentException v;
java.util.concurrent.TimeUnit v, v;
java.util.concurrent.locks.Condition v;
java.lang.Object v, v, v, v, v;
v := @this: org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool;
v := @parameter: int;
v := @parameter: long;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long totalMemory>;
v = v cmp v;
if v <= 0 goto label;
v = new java.lang.IllegalArgumentException;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long totalMemory>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,long)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Attempt to allocate \u bytes, but there is a hard limit of \u on memory allocations.");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: boolean closed>;
if v == 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
v = new org.apache.kafkaesqueesqueesque.common.KafkaException;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.KafkaException: void <init>(java.lang.String)>("Producer closed while allocating memory");
throw v;
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: int poolableSize>;
if v != v goto label;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque free>;
v = interfaceinvoke v.<java.util.Deque: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque free>;
v = interfaceinvoke v.<java.util.Deque: java.lang.Object pollFirst()>();
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory>;
v = v cmp 0L;
if v != 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque free>;
v = interfaceinvoke v.<java.util.Deque: boolean isEmpty()>();
if v != 0 goto label;
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque waiters>;
v = interfaceinvoke v.<java.util.Deque: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque waiters>;
v = interfaceinvoke v.<java.util.Deque: java.lang.Object peekFirst()>();
interfaceinvoke v.<java.util.concurrent.locks.Condition: void signal()>();
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
label:
return v;
label:
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: int freeSize()>();
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: int poolableSize>;
v = v * v;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory>;
v = v + v;
v = v cmp v;
if v < 0 goto label;
specialinvoke v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: void freeUp(int)>(v);
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory>;
v = v - v;
v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory> = v;
goto label;
label:
v = 0;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: java.util.concurrent.locks.Condition newCondition()>();
label:
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toNanos(long)>(v);
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque waiters>;
interfaceinvoke v.<java.util.Deque: void addLast(java.lang.Object)>(v);
label:
if v >= v goto label;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: org.apache.kafkaesqueesqueesque.common.utils.Time time>;
v = interfaceinvoke v.<org.apache.kafkaesqueesqueesque.common.utils.Time: long nanoseconds()>();
label:
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit NANOSECONDS>;
v = interfaceinvoke v.<java.util.concurrent.locks.Condition: boolean await(long,java.util.concurrent.TimeUnit)>(v, v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: org.apache.kafkaesqueesqueesque.common.utils.Time time>;
v = interfaceinvoke v.<org.apache.kafkaesqueesqueesque.common.utils.Time: long nanoseconds()>();
v = v - v;
v = staticinvoke <java.lang.Math: long max(long,long)>(0L, v);
virtualinvoke v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: void recordWaitTime(long)>(v);
goto label;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: org.apache.kafkaesqueesqueesque.common.utils.Time time>;
v = interfaceinvoke v.<org.apache.kafkaesqueesqueesque.common.utils.Time: long nanoseconds()>();
v = v - v;
v = staticinvoke <java.lang.Math: long max(long,long)>(0L, v);
virtualinvoke v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: void recordWaitTime(long)>(v);
throw v;
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: boolean closed>;
if v == 0 goto label;
v = new org.apache.kafkaesqueesqueesque.common.KafkaException;
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.KafkaException: void <init>(java.lang.String)>("Producer closed while allocating memory");
throw v;
label:
if v == 0 goto label;
v = new org.apache.kafkaesqueesqueesque.common.errors.TimeoutException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed to allocate memory within the configured max blocking time \u ms.");
specialinvoke v.<org.apache.kafkaesqueesqueesque.common.errors.TimeoutException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v - v;
if v != 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: int poolableSize>;
if v != v goto label;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque free>;
v = interfaceinvoke v.<java.util.Deque: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque free>;
v = interfaceinvoke v.<java.util.Deque: java.lang.Object pollFirst()>();
v = v;
goto label;
label:
v = v - v;
specialinvoke v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: void freeUp(int)>(v);
v = v - v;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory>;
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory>;
v = v - v;
v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory> = v;
v = v + v;
goto label;
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory>;
v = v + 0;
v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory> = v;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque waiters>;
interfaceinvoke v.<java.util.Deque: boolean remove(java.lang.Object)>(v);
goto label;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory>;
v = v + v;
v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory> = v;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque waiters>;
interfaceinvoke v.<java.util.Deque: boolean remove(java.lang.Object)>(v);
throw v;
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory>;
v = v cmp 0L;
if v != 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque free>;
v = interfaceinvoke v.<java.util.Deque: boolean isEmpty()>();
if v != 0 goto label;
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque waiters>;
v = interfaceinvoke v.<java.util.Deque: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque waiters>;
v = interfaceinvoke v.<java.util.Deque: java.lang.Object peekFirst()>();
interfaceinvoke v.<java.util.concurrent.locks.Condition: void signal()>();
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
label:
v := @caughtexception;
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory>;
v = v cmp 0L;
if v != 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque free>;
v = interfaceinvoke v.<java.util.Deque: boolean isEmpty()>();
if v != 0 goto label;
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque waiters>;
v = interfaceinvoke v.<java.util.Deque: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque waiters>;
v = interfaceinvoke v.<java.util.Deque: java.lang.Object peekFirst()>();
interfaceinvoke v.<java.util.concurrent.locks.Condition: void signal()>();
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
label:
throw v;
label:
if v != null goto label;
v = specialinvoke v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.nio.ByteBuffer safeAllocateByteBuffer(int)>(v);
return v;
label:
return v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected void recordWaitTime(long)
{
org.apache.kafkaesqueesqueesque.common.metrics.Sensor v;
org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool v;
long v, v;
org.apache.kafkaesqueesqueesque.common.utils.Time v;
v := @this: org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool;
v := @parameter: long;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: org.apache.kafkaesqueesqueesque.common.metrics.Sensor waitTime>;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: org.apache.kafkaesqueesqueesque.common.utils.Time time>;
v = interfaceinvoke v.<org.apache.kafkaesqueesqueesque.common.utils.Time: long milliseconds()>();
virtualinvoke v.<org.apache.kafkaesqueesqueesque.common.metrics.Sensor: void record(double,long)>(v, v);
return;
}
private java.nio.ByteBuffer safeAllocateByteBuffer(int)
{
java.lang.Throwable v, v;
java.util.concurrent.locks.ReentrantLock v, v, v;
org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool v;
long v, v;
java.util.Deque v, v;
java.nio.ByteBuffer v;
int v;
java.lang.Object v;
boolean v;
v := @this: org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool;
v := @parameter: int;
label:
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.nio.ByteBuffer allocateByteBuffer(int)>(v);
label:
return v;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory>;
v = v + v;
v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory> = v;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque waiters>;
v = interfaceinvoke v.<java.util.Deque: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque waiters>;
v = interfaceinvoke v.<java.util.Deque: java.lang.Object peekFirst()>();
interfaceinvoke v.<java.util.concurrent.locks.Condition: void signal()>();
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
label:
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected java.nio.ByteBuffer allocateByteBuffer(int)
{
int v;
java.nio.ByteBuffer v;
org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool v;
v := @this: org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool;
v := @parameter: int;
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer allocate(int)>(v);
return v;
}
private void freeUp(int)
{
org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool v;
long v, v, v;
java.util.Deque v, v;
byte v;
int v, v;
java.lang.Object v;
boolean v;
v := @this: org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool;
v := @parameter: int;
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque free>;
v = interfaceinvoke v.<java.util.Deque: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory>;
v = v cmp v;
if v >= 0 goto label;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory>;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque free>;
v = interfaceinvoke v.<java.util.Deque: java.lang.Object pollLast()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int capacity()>();
v = v + v;
v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory> = v;
goto label;
label:
return;
}
public void deallocate(java.nio.ByteBuffer, int)
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantLock v, v, v;
org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool v;
long v, v;
java.util.Deque v, v;
java.nio.ByteBuffer v;
int v, v, v;
java.lang.Object v;
v := @this: org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool;
v := @parameter: java.nio.ByteBuffer;
v := @parameter: int;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: int poolableSize>;
if v != v goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int capacity()>();
if v != v goto label;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer clear()>();
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque free>;
interfaceinvoke v.<java.util.Deque: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory>;
v = v + v;
v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory> = v;
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque waiters>;
v = interfaceinvoke v.<java.util.Deque: java.lang.Object peekFirst()>();
if v == null goto label;
interfaceinvoke v.<java.util.concurrent.locks.Condition: void signal()>();
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void deallocate(java.nio.ByteBuffer)
{
int v;
java.nio.ByteBuffer v;
org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool v;
v := @this: org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool;
v := @parameter: java.nio.ByteBuffer;
v = virtualinvoke v.<java.nio.ByteBuffer: int capacity()>();
virtualinvoke v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: void deallocate(java.nio.ByteBuffer,int)>(v, v);
return;
}
public long availableMemory()
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantLock v, v, v;
org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool v;
long v, v, v;
int v, v;
v := @this: org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory>;
v = virtualinvoke v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: int freeSize()>();
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: int poolableSize>;
v = v * v;
v = v + v;
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
protected int freeSize()
{
int v;
java.util.Deque v;
org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool v;
v := @this: org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque free>;
v = interfaceinvoke v.<java.util.Deque: int size()>();
return v;
}
public long unallocatedMemory()
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantLock v, v, v;
org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool v;
long v;
v := @this: org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long nonPooledAvailableMemory>;
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public int queued()
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantLock v, v, v;
org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool v;
int v;
java.util.Deque v;
v := @this: org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque waiters>;
v = interfaceinvoke v.<java.util.Deque: int size()>();
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public int poolableSize()
{
int v;
org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool v;
v := @this: org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: int poolableSize>;
return v;
}
public long totalMemory()
{
long v;
org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool v;
v := @this: org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: long totalMemory>;
return v;
}
java.util.Deque waiters()
{
java.util.Deque v;
org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool v;
v := @this: org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque waiters>;
return v;
}
public void close()
{
java.lang.Throwable v;
java.util.Iterator v;
java.util.concurrent.locks.ReentrantLock v, v, v;
org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool v;
java.util.Deque v;
java.lang.Object v;
boolean v;
v := @this: org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: boolean closed> = 1;
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.Deque waiters>;
v = interfaceinvoke v.<java.util.Deque: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
interfaceinvoke v.<java.util.concurrent.locks.Condition: void signal()>();
goto label;
label:
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesqueesqueesque.clients.producer.internals.BufferPool: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
}