final class org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher extends org.apache.cassandra.transport.Message$Dispatcher$Flusher
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher
super_class: org.apache.cassandra.transport.Message$Dispatcher$Flusher
{
int runsSinceFlush;
descriptor: I
flags: (0x0000)
int runsWithNoWork;
descriptor: I
flags: (0x0000)
private void <init>(io.netty.channel.EventLoop);
descriptor: (Lio/netty/channel/EventLoop;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher this
start local 1 // io.netty.channel.EventLoop eventLoop
0: .line 493
aload 0 /* this */
aload 1 /* eventLoop */
invokespecial org.apache.cassandra.transport.Message$Dispatcher$Flusher.<init>:(Lio/netty/channel/EventLoop;)V
1: .line 488
aload 0 /* this */
iconst_0
putfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.runsSinceFlush:I
2: .line 489
aload 0 /* this */
iconst_0
putfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.runsWithNoWork:I
3: .line 494
return
end local 1 // io.netty.channel.EventLoop eventLoop
end local 0 // org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/transport/Message$Dispatcher$LegacyFlusher;
0 4 1 eventLoop Lio/netty/channel/EventLoop;
MethodParameters:
Name Flags
eventLoop
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 // org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher this
0: .line 499
iconst_0
istore 1 /* doneWork */
start local 1 // boolean doneWork
1: .line 501
goto 6
start local 2 // org.apache.cassandra.transport.Message$Dispatcher$FlushItem flush
2: .line 503
StackMap locals: int org.apache.cassandra.transport.Message$Dispatcher$FlushItem
StackMap stack:
aload 0 /* this */
getfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.channels:Ljava/util/HashSet;
aload 2 /* flush */
getfield org.apache.cassandra.transport.Message$Dispatcher$FlushItem.ctx:Lio/netty/channel/ChannelHandlerContext;
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
3: .line 504
aload 2 /* flush */
getfield org.apache.cassandra.transport.Message$Dispatcher$FlushItem.ctx:Lio/netty/channel/ChannelHandlerContext;
aload 2 /* flush */
getfield org.apache.cassandra.transport.Message$Dispatcher$FlushItem.response:Ljava/lang/Object;
aload 2 /* flush */
getfield org.apache.cassandra.transport.Message$Dispatcher$FlushItem.ctx:Lio/netty/channel/ChannelHandlerContext;
invokeinterface io.netty.channel.ChannelHandlerContext.voidPromise:()Lio/netty/channel/ChannelPromise;
invokeinterface io.netty.channel.ChannelHandlerContext.write:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
pop
4: .line 505
aload 0 /* this */
getfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.flushed:Ljava/util/List;
aload 2 /* flush */
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: .line 506
iconst_1
istore 1 /* doneWork */
end local 2 // org.apache.cassandra.transport.Message$Dispatcher$FlushItem flush
6: .line 501
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.queued:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.poll:()Ljava/lang/Object;
checkcast org.apache.cassandra.transport.Message$Dispatcher$FlushItem
dup
astore 2 /* flush */
start local 2 // org.apache.cassandra.transport.Message$Dispatcher$FlushItem flush
7: ifnonnull 2
8: .line 509
aload 0 /* this */
dup
getfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.runsSinceFlush:I
iconst_1
iadd
putfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.runsSinceFlush:I
9: .line 511
iload 1 /* doneWork */
ifeq 10
aload 0 /* this */
getfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.runsSinceFlush:I
iconst_2
if_icmpgt 10
aload 0 /* this */
getfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.flushed:Ljava/util/List;
invokeinterface java.util.List.size:()I
bipush 50
if_icmple 21
10: .line 513
StackMap locals: org.apache.cassandra.transport.Message$Dispatcher$FlushItem
StackMap stack:
aload 0 /* this */
getfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.channels:Ljava/util/HashSet;
invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
astore 4
goto 13
StackMap locals: org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher int org.apache.cassandra.transport.Message$Dispatcher$FlushItem top java.util.Iterator
StackMap stack:
11: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.netty.channel.ChannelHandlerContext
astore 3 /* channel */
start local 3 // io.netty.channel.ChannelHandlerContext channel
12: .line 514
aload 3 /* channel */
invokeinterface io.netty.channel.ChannelHandlerContext.flush:()Lio/netty/channel/ChannelHandlerContext;
pop
end local 3 // io.netty.channel.ChannelHandlerContext channel
13: .line 513
StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
14: .line 515
aload 0 /* this */
getfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.flushed:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 17
StackMap locals:
StackMap stack:
15: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.transport.Message$Dispatcher$FlushItem
astore 3 /* item */
start local 3 // org.apache.cassandra.transport.Message$Dispatcher$FlushItem item
16: .line 516
aload 3 /* item */
invokevirtual org.apache.cassandra.transport.Message$Dispatcher$FlushItem.release:()V
end local 3 // org.apache.cassandra.transport.Message$Dispatcher$FlushItem item
17: .line 515
StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
18: .line 518
aload 0 /* this */
getfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.channels:Ljava/util/HashSet;
invokevirtual java.util.HashSet.clear:()V
19: .line 519
aload 0 /* this */
getfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.flushed:Ljava/util/List;
invokeinterface java.util.List.clear:()V
20: .line 520
aload 0 /* this */
iconst_0
putfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.runsSinceFlush:I
21: .line 523
StackMap locals: org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher int org.apache.cassandra.transport.Message$Dispatcher$FlushItem
StackMap stack:
iload 1 /* doneWork */
ifeq 24
22: .line 525
aload 0 /* this */
iconst_0
putfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.runsWithNoWork:I
23: .line 526
goto 28
24: .line 530
StackMap locals:
StackMap stack:
aload 0 /* this */
dup
getfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.runsWithNoWork:I
iconst_1
iadd
dup_x1
putfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.runsWithNoWork:I
iconst_5
if_icmple 28
25: .line 532
aload 0 /* this */
getfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.scheduled:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
26: .line 533
aload 0 /* this */
getfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.queued:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.isEmpty:()Z
ifne 27
aload 0 /* this */
getfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.scheduled:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ifne 28
27: .line 534
StackMap locals:
StackMap stack:
return
28: .line 538
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.eventLoop:Lio/netty/channel/EventLoop;
aload 0 /* this */
ldc 10000
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokeinterface io.netty.channel.EventLoop.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lio/netty/util/concurrent/ScheduledFuture;
pop
29: .line 539
return
end local 2 // org.apache.cassandra.transport.Message$Dispatcher$FlushItem flush
end local 1 // boolean doneWork
end local 0 // org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher this
LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lorg/apache/cassandra/transport/Message$Dispatcher$LegacyFlusher;
1 30 1 doneWork Z
2 6 2 flush Lorg/apache/cassandra/transport/Message$Dispatcher$FlushItem;
7 30 2 flush Lorg/apache/cassandra/transport/Message$Dispatcher$FlushItem;
12 13 3 channel Lio/netty/channel/ChannelHandlerContext;
16 17 3 item Lorg/apache/cassandra/transport/Message$Dispatcher$FlushItem;
}
SourceFile: "Message.java"
NestHost: org.apache.cassandra.transport.Message
InnerClasses:
public Dispatcher = org.apache.cassandra.transport.Message$Dispatcher of org.apache.cassandra.transport.Message
private FlushItem = org.apache.cassandra.transport.Message$Dispatcher$FlushItem of org.apache.cassandra.transport.Message$Dispatcher
private abstract Flusher = org.apache.cassandra.transport.Message$Dispatcher$Flusher of org.apache.cassandra.transport.Message$Dispatcher
private final LegacyFlusher = org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher of org.apache.cassandra.transport.Message$Dispatcher