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