final class io.netty.channel.AbstractChannelHandlerContext$WriteTask extends java.lang.Object implements java.lang.Runnable
{
private static final io.netty.util.internal.ObjectPool RECYCLER;
private static final boolean ESTIMATE_TASK_SIZE_ON_SUBMIT;
private static final int WRITE_TASK_OVERHEAD;
private final io.netty.util.internal.ObjectPool$Handle handle;
private io.netty.channel.AbstractChannelHandlerContext ctx;
private java.lang.Object msg;
private io.netty.channel.ChannelPromise promise;
private int size;
static io.netty.channel.AbstractChannelHandlerContext$WriteTask newInstance(io.netty.channel.AbstractChannelHandlerContext, java.lang.Object, io.netty.channel.ChannelPromise, boolean)
{
io.netty.channel.ChannelPromise v;
io.netty.channel.AbstractChannelHandlerContext v;
java.lang.Object v, v;
io.netty.util.internal.ObjectPool v;
boolean v;
v := @parameter: io.netty.channel.AbstractChannelHandlerContext;
v := @parameter: java.lang.Object;
v := @parameter: io.netty.channel.ChannelPromise;
v := @parameter: boolean;
v = <io.netty.channel.AbstractChannelHandlerContext$WriteTask: io.netty.util.internal.ObjectPool RECYCLER>;
v = virtualinvoke v.<io.netty.util.internal.ObjectPool: java.lang.Object get()>();
staticinvoke <io.netty.channel.AbstractChannelHandlerContext$WriteTask: void init(io.netty.channel.AbstractChannelHandlerContext$WriteTask,io.netty.channel.AbstractChannelHandlerContext,java.lang.Object,io.netty.channel.ChannelPromise,boolean)>(v, v, v, v, v);
return v;
}
private void <init>(io.netty.util.internal.ObjectPool$Handle)
{
io.netty.util.internal.ObjectPool$Handle v;
io.netty.channel.AbstractChannelHandlerContext$WriteTask v;
v := @this: io.netty.channel.AbstractChannelHandlerContext$WriteTask;
v := @parameter: io.netty.util.internal.ObjectPool$Handle;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: io.netty.util.internal.ObjectPool$Handle handle> = v;
return;
}
protected static void init(io.netty.channel.AbstractChannelHandlerContext$WriteTask, io.netty.channel.AbstractChannelHandlerContext, java.lang.Object, io.netty.channel.ChannelPromise, boolean)
{
io.netty.channel.AbstractChannelHandlerContext$WriteTask v;
io.netty.channel.MessageSizeEstimator$Handle v;
io.netty.channel.ChannelPromise v;
int v, v, v, v, v, v;
io.netty.channel.AbstractChannelHandlerContext v;
java.lang.Object v;
io.netty.channel.DefaultChannelPipeline v, v;
boolean v, v;
v := @parameter: io.netty.channel.AbstractChannelHandlerContext$WriteTask;
v := @parameter: io.netty.channel.AbstractChannelHandlerContext;
v := @parameter: java.lang.Object;
v := @parameter: io.netty.channel.ChannelPromise;
v := @parameter: boolean;
v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: io.netty.channel.AbstractChannelHandlerContext ctx> = v;
v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: java.lang.Object msg> = v;
v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: io.netty.channel.ChannelPromise promise> = v;
v = <io.netty.channel.AbstractChannelHandlerContext$WriteTask: boolean ESTIMATE_TASK_SIZE_ON_SUBMIT>;
if v == 0 goto label;
v = v.<io.netty.channel.AbstractChannelHandlerContext: io.netty.channel.DefaultChannelPipeline pipeline>;
v = virtualinvoke v.<io.netty.channel.DefaultChannelPipeline: io.netty.channel.MessageSizeEstimator$Handle estimatorHandle()>();
v = interfaceinvoke v.<io.netty.channel.MessageSizeEstimator$Handle: int size(java.lang.Object)>(v);
v = <io.netty.channel.AbstractChannelHandlerContext$WriteTask: int WRITE_TASK_OVERHEAD>;
v = v + v;
v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: int size> = v;
v = v.<io.netty.channel.AbstractChannelHandlerContext: io.netty.channel.DefaultChannelPipeline pipeline>;
v = v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: int size>;
virtualinvoke v.<io.netty.channel.DefaultChannelPipeline: void incrementPendingOutboundBytes(long)>(v);
goto label;
label:
v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: int size> = 0;
label:
if v == 0 goto label;
v = v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: int size>;
v = v | -2147483648;
v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: int size> = v;
label:
return;
}
public void run()
{
java.lang.Throwable v;
io.netty.channel.AbstractChannelHandlerContext$WriteTask v;
io.netty.channel.ChannelPromise v, v;
int v;
io.netty.channel.AbstractChannelHandlerContext v, v;
java.lang.Object v, v;
v := @this: io.netty.channel.AbstractChannelHandlerContext$WriteTask;
label:
specialinvoke v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: void decrementPendingOutboundBytes()>();
v = v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: int size>;
if v < 0 goto label;
v = v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: io.netty.channel.AbstractChannelHandlerContext ctx>;
v = v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: java.lang.Object msg>;
v = v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: io.netty.channel.ChannelPromise promise>;
virtualinvoke v.<io.netty.channel.AbstractChannelHandlerContext: void invokeWrite(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
goto label;
label:
v = v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: io.netty.channel.AbstractChannelHandlerContext ctx>;
v = v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: java.lang.Object msg>;
v = v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: io.netty.channel.ChannelPromise promise>;
virtualinvoke v.<io.netty.channel.AbstractChannelHandlerContext: void invokeWriteAndFlush(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
label:
specialinvoke v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: void recycle()>();
goto label;
label:
v := @caughtexception;
specialinvoke v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: void recycle()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
void cancel()
{
java.lang.Throwable v;
io.netty.channel.AbstractChannelHandlerContext$WriteTask v;
v := @this: io.netty.channel.AbstractChannelHandlerContext$WriteTask;
label:
specialinvoke v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: void decrementPendingOutboundBytes()>();
label:
specialinvoke v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: void recycle()>();
goto label;
label:
v := @caughtexception;
specialinvoke v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: void recycle()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void decrementPendingOutboundBytes()
{
int v, v;
io.netty.channel.AbstractChannelHandlerContext v;
io.netty.channel.AbstractChannelHandlerContext$WriteTask v;
io.netty.channel.DefaultChannelPipeline v;
boolean v;
v := @this: io.netty.channel.AbstractChannelHandlerContext$WriteTask;
v = <io.netty.channel.AbstractChannelHandlerContext$WriteTask: boolean ESTIMATE_TASK_SIZE_ON_SUBMIT>;
if v == 0 goto label;
v = v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: io.netty.channel.AbstractChannelHandlerContext ctx>;
v = v.<io.netty.channel.AbstractChannelHandlerContext: io.netty.channel.DefaultChannelPipeline pipeline>;
v = v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: int size>;
v = v & 2147483647;
virtualinvoke v.<io.netty.channel.DefaultChannelPipeline: void decrementPendingOutboundBytes(long)>(v);
label:
return;
}
private void recycle()
{
io.netty.util.internal.ObjectPool$Handle v;
io.netty.channel.AbstractChannelHandlerContext$WriteTask v;
v := @this: io.netty.channel.AbstractChannelHandlerContext$WriteTask;
v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: io.netty.channel.AbstractChannelHandlerContext ctx> = null;
v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: java.lang.Object msg> = null;
v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: io.netty.channel.ChannelPromise promise> = null;
v = v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask: io.netty.util.internal.ObjectPool$Handle handle>;
interfaceinvoke v.<io.netty.util.internal.ObjectPool$Handle: void recycle(java.lang.Object)>(v);
return;
}
static void <clinit>()
{
int v;
io.netty.channel.AbstractChannelHandlerContext$WriteTask$1 v;
io.netty.util.internal.ObjectPool v;
boolean v;
v = new io.netty.channel.AbstractChannelHandlerContext$WriteTask$1;
specialinvoke v.<io.netty.channel.AbstractChannelHandlerContext$WriteTask$1: void <init>()>();
v = staticinvoke <io.netty.util.internal.ObjectPool: io.netty.util.internal.ObjectPool newPool(io.netty.util.internal.ObjectPool$ObjectCreator)>(v);
<io.netty.channel.AbstractChannelHandlerContext$WriteTask: io.netty.util.internal.ObjectPool RECYCLER> = v;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: boolean getBoolean(java.lang.String,boolean)>("io.netty.transport.estimateSizeOnSubmit", 1);
<io.netty.channel.AbstractChannelHandlerContext$WriteTask: boolean ESTIMATE_TASK_SIZE_ON_SUBMIT> = v;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: int getInt(java.lang.String,int)>("io.netty.transport.writeTaskSizeOverhead", 32);
<io.netty.channel.AbstractChannelHandlerContext$WriteTask: int WRITE_TASK_OVERHEAD> = v;
return;
}
}