public final class io.netty.channel.ChannelFlushPromiseNotifier
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.netty.channel.ChannelFlushPromiseNotifier
super_class: java.lang.Object
{
private long writeCounter;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final java.util.Queue<io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint> flushCheckpoints;
descriptor: Ljava/util/Queue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Queue<Lio/netty/channel/ChannelFlushPromiseNotifier$FlushCheckpoint;>;
private final boolean tryNotify;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
putfield io.netty.channel.ChannelFlushPromiseNotifier.flushCheckpoints:Ljava/util/Queue;
2: aload 0
iload 1
putfield io.netty.channel.ChannelFlushPromiseNotifier.tryNotify:Z
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/channel/ChannelFlushPromiseNotifier;
0 4 1 tryNotify Z
MethodParameters:
Name Flags
tryNotify
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokespecial io.netty.channel.ChannelFlushPromiseNotifier.<init>:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/channel/ChannelFlushPromiseNotifier;
public io.netty.channel.ChannelFlushPromiseNotifier add(io.netty.channel.ChannelPromise, int);
descriptor: (Lio/netty/channel/ChannelPromise;I)Lio/netty/channel/ChannelFlushPromiseNotifier;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
i2l
invokevirtual io.netty.channel.ChannelFlushPromiseNotifier.add:(Lio/netty/channel/ChannelPromise;J)Lio/netty/channel/ChannelFlushPromiseNotifier;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/ChannelFlushPromiseNotifier;
0 1 1 promise Lio/netty/channel/ChannelPromise;
0 1 2 pendingDataSize I
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
promise
pendingDataSize
public io.netty.channel.ChannelFlushPromiseNotifier add(io.netty.channel.ChannelPromise, long);
descriptor: (Lio/netty/channel/ChannelPromise;J)Lio/netty/channel/ChannelFlushPromiseNotifier;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "promise"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
lload 2
lconst_0
lcmp
ifge 4
3: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "pendingDataSize must be >= 0 but was "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 2
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.ChannelFlushPromiseNotifier.writeCounter:J
lload 2
ladd
lstore 4
start local 4 5: aload 1
instanceof io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint
ifeq 10
6: aload 1
checkcast io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint
astore 6
start local 6 7: aload 6
lload 4
invokeinterface io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint.flushCheckpoint:(J)V
8: aload 0
getfield io.netty.channel.ChannelFlushPromiseNotifier.flushCheckpoints:Ljava/util/Queue;
aload 6
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
pop
end local 6 9: goto 11
10: StackMap locals: long
StackMap stack:
aload 0
getfield io.netty.channel.ChannelFlushPromiseNotifier.flushCheckpoints:Ljava/util/Queue;
new io.netty.channel.ChannelFlushPromiseNotifier$DefaultFlushCheckpoint
dup
lload 4
aload 1
invokespecial io.netty.channel.ChannelFlushPromiseNotifier$DefaultFlushCheckpoint.<init>:(JLio/netty/channel/ChannelPromise;)V
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
pop
11: StackMap locals:
StackMap stack:
aload 0
areturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/netty/channel/ChannelFlushPromiseNotifier;
0 12 1 promise Lio/netty/channel/ChannelPromise;
0 12 2 pendingDataSize J
5 12 4 checkpoint J
7 9 6 cp Lio/netty/channel/ChannelFlushPromiseNotifier$FlushCheckpoint;
MethodParameters:
Name Flags
promise
pendingDataSize
public io.netty.channel.ChannelFlushPromiseNotifier increaseWriteCounter(long);
descriptor: (J)Lio/netty/channel/ChannelFlushPromiseNotifier;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: lload 1
lconst_0
lcmp
ifge 2
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "delta must be >= 0 but was "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.netty.channel.ChannelFlushPromiseNotifier.writeCounter:J
lload 1
ladd
putfield io.netty.channel.ChannelFlushPromiseNotifier.writeCounter:J
3: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/channel/ChannelFlushPromiseNotifier;
0 4 1 delta J
MethodParameters:
Name Flags
delta
public long writeCounter();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.ChannelFlushPromiseNotifier.writeCounter:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/ChannelFlushPromiseNotifier;
public io.netty.channel.ChannelFlushPromiseNotifier notifyPromises();
descriptor: ()Lio/netty/channel/ChannelFlushPromiseNotifier;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
invokevirtual io.netty.channel.ChannelFlushPromiseNotifier.notifyPromises0:(Ljava/lang/Throwable;)V
1: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/channel/ChannelFlushPromiseNotifier;
public io.netty.channel.ChannelFlushPromiseNotifier notifyFlushFutures();
descriptor: ()Lio/netty/channel/ChannelFlushPromiseNotifier;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual io.netty.channel.ChannelFlushPromiseNotifier.notifyPromises:()Lio/netty/channel/ChannelFlushPromiseNotifier;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/ChannelFlushPromiseNotifier;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public io.netty.channel.ChannelFlushPromiseNotifier notifyPromises(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Lio/netty/channel/ChannelFlushPromiseNotifier;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual io.netty.channel.ChannelFlushPromiseNotifier.notifyPromises:()Lio/netty/channel/ChannelFlushPromiseNotifier;
pop
1: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.ChannelFlushPromiseNotifier.flushCheckpoints:Ljava/util/Queue;
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint
astore 2
start local 2 2: aload 2
ifnonnull 4
3: goto 9
4: StackMap locals: io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint
StackMap stack:
aload 0
getfield io.netty.channel.ChannelFlushPromiseNotifier.tryNotify:Z
ifeq 7
5: aload 2
invokeinterface io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint.promise:()Lio/netty/channel/ChannelPromise;
aload 1
invokeinterface io.netty.channel.ChannelPromise.tryFailure:(Ljava/lang/Throwable;)Z
pop
6: goto 1
7: StackMap locals:
StackMap stack:
aload 2
invokeinterface io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint.promise:()Lio/netty/channel/ChannelPromise;
aload 1
invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
pop
end local 2 8: goto 1
9: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/netty/channel/ChannelFlushPromiseNotifier;
0 10 1 cause Ljava/lang/Throwable;
2 8 2 cp Lio/netty/channel/ChannelFlushPromiseNotifier$FlushCheckpoint;
MethodParameters:
Name Flags
cause
public io.netty.channel.ChannelFlushPromiseNotifier notifyFlushFutures(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Lio/netty/channel/ChannelFlushPromiseNotifier;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual io.netty.channel.ChannelFlushPromiseNotifier.notifyPromises:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelFlushPromiseNotifier;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/ChannelFlushPromiseNotifier;
0 1 1 cause Ljava/lang/Throwable;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
cause
public io.netty.channel.ChannelFlushPromiseNotifier notifyPromises(java.lang.Throwable, java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;Ljava/lang/Throwable;)Lio/netty/channel/ChannelFlushPromiseNotifier;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual io.netty.channel.ChannelFlushPromiseNotifier.notifyPromises0:(Ljava/lang/Throwable;)V
1: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.ChannelFlushPromiseNotifier.flushCheckpoints:Ljava/util/Queue;
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint
astore 3
start local 3 2: aload 3
ifnonnull 4
3: goto 9
4: StackMap locals: io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint
StackMap stack:
aload 0
getfield io.netty.channel.ChannelFlushPromiseNotifier.tryNotify:Z
ifeq 7
5: aload 3
invokeinterface io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint.promise:()Lio/netty/channel/ChannelPromise;
aload 2
invokeinterface io.netty.channel.ChannelPromise.tryFailure:(Ljava/lang/Throwable;)Z
pop
6: goto 1
7: StackMap locals:
StackMap stack:
aload 3
invokeinterface io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint.promise:()Lio/netty/channel/ChannelPromise;
aload 2
invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
pop
end local 3 8: goto 1
9: StackMap locals:
StackMap stack:
aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/netty/channel/ChannelFlushPromiseNotifier;
0 10 1 cause1 Ljava/lang/Throwable;
0 10 2 cause2 Ljava/lang/Throwable;
2 8 3 cp Lio/netty/channel/ChannelFlushPromiseNotifier$FlushCheckpoint;
MethodParameters:
Name Flags
cause1
cause2
public io.netty.channel.ChannelFlushPromiseNotifier notifyFlushFutures(java.lang.Throwable, java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;Ljava/lang/Throwable;)Lio/netty/channel/ChannelFlushPromiseNotifier;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual io.netty.channel.ChannelFlushPromiseNotifier.notifyPromises:(Ljava/lang/Throwable;Ljava/lang/Throwable;)Lio/netty/channel/ChannelFlushPromiseNotifier;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/ChannelFlushPromiseNotifier;
0 1 1 cause1 Ljava/lang/Throwable;
0 1 2 cause2 Ljava/lang/Throwable;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
cause1
cause2
private void notifyPromises0(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield io.netty.channel.ChannelFlushPromiseNotifier.flushCheckpoints:Ljava/util/Queue;
invokeinterface java.util.Queue.isEmpty:()Z
ifeq 3
1: aload 0
lconst_0
putfield io.netty.channel.ChannelFlushPromiseNotifier.writeCounter:J
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.ChannelFlushPromiseNotifier.writeCounter:J
lstore 2
start local 2 4: StackMap locals: long
StackMap stack:
aload 0
getfield io.netty.channel.ChannelFlushPromiseNotifier.flushCheckpoints:Ljava/util/Queue;
invokeinterface java.util.Queue.peek:()Ljava/lang/Object;
checkcast io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint
astore 4
start local 4 5: aload 4
ifnonnull 8
6: aload 0
lconst_0
putfield io.netty.channel.ChannelFlushPromiseNotifier.writeCounter:J
7: goto 26
8: StackMap locals: io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint
StackMap stack:
aload 4
invokeinterface io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint.flushCheckpoint:()J
lload 2
lcmp
ifle 13
9: lload 2
lconst_0
lcmp
ifle 26
aload 0
getfield io.netty.channel.ChannelFlushPromiseNotifier.flushCheckpoints:Ljava/util/Queue;
invokeinterface java.util.Queue.size:()I
iconst_1
if_icmpne 26
10: aload 0
lconst_0
putfield io.netty.channel.ChannelFlushPromiseNotifier.writeCounter:J
11: aload 4
aload 4
invokeinterface io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint.flushCheckpoint:()J
lload 2
lsub
invokeinterface io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint.flushCheckpoint:(J)V
12: goto 26
13: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.ChannelFlushPromiseNotifier.flushCheckpoints:Ljava/util/Queue;
invokeinterface java.util.Queue.remove:()Ljava/lang/Object;
pop
14: aload 4
invokeinterface io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint.promise:()Lio/netty/channel/ChannelPromise;
astore 5
start local 5 15: aload 1
ifnonnull 21
16: aload 0
getfield io.netty.channel.ChannelFlushPromiseNotifier.tryNotify:Z
ifeq 19
17: aload 5
invokeinterface io.netty.channel.ChannelPromise.trySuccess:()Z
pop
18: goto 4
19: StackMap locals: io.netty.channel.ChannelPromise
StackMap stack:
aload 5
invokeinterface io.netty.channel.ChannelPromise.setSuccess:()Lio/netty/channel/ChannelPromise;
pop
20: goto 4
21: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.ChannelFlushPromiseNotifier.tryNotify:Z
ifeq 24
22: aload 5
aload 1
invokeinterface io.netty.channel.ChannelPromise.tryFailure:(Ljava/lang/Throwable;)Z
pop
23: goto 4
24: StackMap locals:
StackMap stack:
aload 5
aload 1
invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
pop
end local 5 end local 4 25: goto 4
26: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.ChannelFlushPromiseNotifier.writeCounter:J
lstore 4
start local 4 27: lload 4
ldc 549755813888
lcmp
iflt 33
28: aload 0
lconst_0
putfield io.netty.channel.ChannelFlushPromiseNotifier.writeCounter:J
29: aload 0
getfield io.netty.channel.ChannelFlushPromiseNotifier.flushCheckpoints:Ljava/util/Queue;
invokeinterface java.util.Queue.iterator:()Ljava/util/Iterator;
astore 7
goto 32
StackMap locals: io.netty.channel.ChannelFlushPromiseNotifier java.lang.Throwable long long top java.util.Iterator
StackMap stack:
30: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint
astore 6
start local 6 31: aload 6
aload 6
invokeinterface io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint.flushCheckpoint:()J
lload 4
lsub
invokeinterface io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint.flushCheckpoint:(J)V
end local 6 32: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 30
33: StackMap locals: io.netty.channel.ChannelFlushPromiseNotifier java.lang.Throwable long long
StackMap stack:
return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lio/netty/channel/ChannelFlushPromiseNotifier;
0 34 1 cause Ljava/lang/Throwable;
4 34 2 writeCounter J
5 25 4 cp Lio/netty/channel/ChannelFlushPromiseNotifier$FlushCheckpoint;
15 25 5 promise Lio/netty/channel/ChannelPromise;
27 34 4 newWriteCounter J
31 32 6 cp Lio/netty/channel/ChannelFlushPromiseNotifier$FlushCheckpoint;
MethodParameters:
Name Flags
cause
}
SourceFile: "ChannelFlushPromiseNotifier.java"
NestMembers:
io.netty.channel.ChannelFlushPromiseNotifier$DefaultFlushCheckpoint io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint
InnerClasses:
private DefaultFlushCheckpoint = io.netty.channel.ChannelFlushPromiseNotifier$DefaultFlushCheckpoint of io.netty.channel.ChannelFlushPromiseNotifier
abstract FlushCheckpoint = io.netty.channel.ChannelFlushPromiseNotifier$FlushCheckpoint of io.netty.channel.ChannelFlushPromiseNotifier