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