final class io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask extends io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInTask implements io.netty.channel.ChannelFutureListener
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask
super_class: io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInTask
{
private final io.netty.channel.epoll.AbstractEpollStreamChannel ch;
descriptor: Lio/netty/channel/epoll/AbstractEpollStreamChannel;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final io.netty.channel.epoll.AbstractEpollStreamChannel this$0;
descriptor: Lio/netty/channel/epoll/AbstractEpollStreamChannel;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lio/netty/channel/epoll/AbstractEpollStreamChannel;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(io.netty.channel.epoll.AbstractEpollStreamChannel, io.netty.channel.epoll.AbstractEpollStreamChannel, int, io.netty.channel.ChannelPromise);
descriptor: (Lio/netty/channel/epoll/AbstractEpollStreamChannel;Lio/netty/channel/epoll/AbstractEpollStreamChannel;ILio/netty/channel/ChannelPromise;)V
flags: (0x0000)
Code:
stack=4, locals=5, args_size=5
start local 0 start local 2 start local 3 start local 4 0: aload 0
aload 1
putfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.this$0:Lio/netty/channel/epoll/AbstractEpollStreamChannel;
1: aload 0
aload 1
iload 3
aload 4
invokespecial io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInTask.<init>:(Lio/netty/channel/epoll/AbstractEpollStreamChannel;ILio/netty/channel/ChannelPromise;)V
2: aload 0
aload 2
putfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.ch:Lio/netty/channel/epoll/AbstractEpollStreamChannel;
3: return
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/channel/epoll/AbstractEpollStreamChannel$SpliceInChannelTask;
0 4 2 ch Lio/netty/channel/epoll/AbstractEpollStreamChannel;
0 4 3 len I
0 4 4 promise Lio/netty/channel/ChannelPromise;
MethodParameters:
Name Flags
this$0 final
ch
len
promise
public void operationComplete(io.netty.channel.ChannelFuture);
descriptor: (Lio/netty/channel/ChannelFuture;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface io.netty.channel.ChannelFuture.isSuccess:()Z
ifne 2
1: aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.promise:Lio/netty/channel/ChannelPromise;
aload 1
invokeinterface io.netty.channel.ChannelFuture.cause:()Ljava/lang/Throwable;
invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
pop
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/channel/epoll/AbstractEpollStreamChannel$SpliceInChannelTask;
0 3 1 future Lio/netty/channel/ChannelFuture;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
future
public boolean spliceIn(io.netty.channel.RecvByteBufAllocator$Handle);
descriptor: (Lio/netty/channel/RecvByteBufAllocator$Handle;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=2
start local 0 start local 1 0: getstatic io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.$assertionsDisabled:Z
ifne 1
aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.ch:Lio/netty/channel/epoll/AbstractEpollStreamChannel;
invokevirtual io.netty.channel.epoll.AbstractEpollStreamChannel.eventLoop:()Lio/netty/channel/EventLoop;
invokeinterface io.netty.channel.EventLoop.inEventLoop:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.len:I
ifne 4
2: aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.promise:Lio/netty/channel/ChannelPromise;
invokeinterface io.netty.channel.ChannelPromise.setSuccess:()Lio/netty/channel/ChannelPromise;
pop
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.ch:Lio/netty/channel/epoll/AbstractEpollStreamChannel;
getfield io.netty.channel.epoll.AbstractEpollStreamChannel.pipeOut:Lio/netty/channel/unix/FileDescriptor;
astore 2
start local 2 5: aload 2
ifnonnull 9
6: invokestatic io.netty.channel.unix.FileDescriptor.pipe:()[Lio/netty/channel/unix/FileDescriptor;
astore 3
start local 3 7: aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.ch:Lio/netty/channel/epoll/AbstractEpollStreamChannel;
aload 3
iconst_0
aaload
putfield io.netty.channel.epoll.AbstractEpollStreamChannel.pipeIn:Lio/netty/channel/unix/FileDescriptor;
8: aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.ch:Lio/netty/channel/epoll/AbstractEpollStreamChannel;
aload 3
iconst_1
aaload
dup_x1
putfield io.netty.channel.epoll.AbstractEpollStreamChannel.pipeOut:Lio/netty/channel/unix/FileDescriptor;
astore 2
end local 3 9: StackMap locals: io.netty.channel.unix.FileDescriptor
StackMap stack:
aload 0
aload 2
aload 1
invokevirtual io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.spliceIn:(Lio/netty/channel/unix/FileDescriptor;Lio/netty/channel/RecvByteBufAllocator$Handle;)I
istore 3
start local 3 10: iload 3
ifle 22
11: aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.len:I
ldc 2147483647
if_icmpeq 13
12: aload 0
dup
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.len:I
iload 3
isub
putfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.len:I
13: StackMap locals: int
StackMap stack:
aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.len:I
ifne 16
14: aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.promise:Lio/netty/channel/ChannelPromise;
astore 4
start local 4 15: goto 17
end local 4 16: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.ch:Lio/netty/channel/epoll/AbstractEpollStreamChannel;
invokevirtual io.netty.channel.epoll.AbstractEpollStreamChannel.newPromise:()Lio/netty/channel/ChannelPromise;
aload 0
invokeinterface io.netty.channel.ChannelPromise.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelPromise;
astore 4
start local 4 17: StackMap locals: io.netty.channel.ChannelPromise
StackMap stack:
aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.this$0:Lio/netty/channel/epoll/AbstractEpollStreamChannel;
invokevirtual io.netty.channel.epoll.AbstractEpollStreamChannel.config:()Lio/netty/channel/epoll/EpollChannelConfig;
invokevirtual io.netty.channel.epoll.EpollChannelConfig.isAutoRead:()Z
istore 5
start local 5 18: aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.ch:Lio/netty/channel/epoll/AbstractEpollStreamChannel;
invokevirtual io.netty.channel.epoll.AbstractEpollStreamChannel.unsafe:()Lio/netty/channel/Channel$Unsafe;
new io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceOutTask
dup
aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.this$0:Lio/netty/channel/epoll/AbstractEpollStreamChannel;
aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.ch:Lio/netty/channel/epoll/AbstractEpollStreamChannel;
iload 3
iload 5
invokespecial io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceOutTask.<init>:(Lio/netty/channel/epoll/AbstractEpollStreamChannel;Lio/netty/channel/epoll/AbstractEpollStreamChannel;IZ)V
aload 4
invokeinterface io.netty.channel.Channel$Unsafe.write:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
19: aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.ch:Lio/netty/channel/epoll/AbstractEpollStreamChannel;
invokevirtual io.netty.channel.epoll.AbstractEpollStreamChannel.unsafe:()Lio/netty/channel/Channel$Unsafe;
invokeinterface io.netty.channel.Channel$Unsafe.flush:()V
20: iload 5
ifeq 22
aload 4
invokeinterface io.netty.channel.ChannelPromise.isDone:()Z
ifne 22
21: aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.this$0:Lio/netty/channel/epoll/AbstractEpollStreamChannel;
invokevirtual io.netty.channel.epoll.AbstractEpollStreamChannel.config:()Lio/netty/channel/epoll/EpollChannelConfig;
iconst_0
invokevirtual io.netty.channel.epoll.EpollChannelConfig.setAutoRead:(Z)Lio/netty/channel/epoll/EpollChannelConfig;
pop
end local 5 end local 4 22: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.len:I
ifne 23
iconst_1
ireturn
StackMap locals:
StackMap stack:
23: iconst_0
24: ireturn
end local 3 end local 2 25: StackMap locals: io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask io.netty.channel.RecvByteBufAllocator$Handle
StackMap stack: java.lang.Throwable
astore 2
start local 2 26: aload 0
getfield io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.promise:Lio/netty/channel/ChannelPromise;
aload 2
invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
pop
27: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lio/netty/channel/epoll/AbstractEpollStreamChannel$SpliceInChannelTask;
0 28 1 handle Lio/netty/channel/RecvByteBufAllocator$Handle;
5 25 2 pipeOut Lio/netty/channel/unix/FileDescriptor;
7 9 3 pipe [Lio/netty/channel/unix/FileDescriptor;
10 25 3 splicedIn I
15 16 4 splicePromise Lio/netty/channel/ChannelPromise;
17 22 4 splicePromise Lio/netty/channel/ChannelPromise;
18 22 5 autoRead Z
26 28 2 cause Ljava/lang/Throwable;
Exception table:
from to target type
4 24 25 Class java.lang.Throwable
MethodParameters:
Name Flags
handle
public void operationComplete(io.netty.util.concurrent.Future);
descriptor: (Lio/netty/util/concurrent/Future;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast io.netty.channel.ChannelFuture
invokevirtual io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask.operationComplete:(Lio/netty/channel/ChannelFuture;)V
return
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
}
SourceFile: "AbstractEpollStreamChannel.java"
NestHost: io.netty.channel.epoll.AbstractEpollStreamChannel
InnerClasses:
public abstract Unsafe = io.netty.channel.Channel$Unsafe of io.netty.channel.Channel
public abstract Handle = io.netty.channel.RecvByteBufAllocator$Handle of io.netty.channel.RecvByteBufAllocator
private final SpliceInChannelTask = io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInChannelTask of io.netty.channel.epoll.AbstractEpollStreamChannel
protected abstract SpliceInTask = io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceInTask of io.netty.channel.epoll.AbstractEpollStreamChannel
private final SpliceOutTask = io.netty.channel.epoll.AbstractEpollStreamChannel$SpliceOutTask of io.netty.channel.epoll.AbstractEpollStreamChannel