public class org.apache.cassandra.utils.SlidingTimeRate
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.utils.SlidingTimeRate
  super_class: java.lang.Object
{
  private final java.util.concurrent.ConcurrentSkipListMap<java.lang.Long, java.util.concurrent.atomic.AtomicInteger> counters;
    descriptor: Ljava/util/concurrent/ConcurrentSkipListMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentSkipListMap<Ljava/lang/Long;Ljava/util/concurrent/atomic/AtomicInteger;>;

  private final java.util.concurrent.atomic.AtomicLong lastCounterTimestamp;
    descriptor: Ljava/util/concurrent/atomic/AtomicLong;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.locks.ReadWriteLock pruneLock;
    descriptor: Ljava/util/concurrent/locks/ReadWriteLock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long sizeInMillis;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long precisionInMillis;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.cassandra.utils.TimeSource timeSource;
    descriptor: Lorg/apache/cassandra/utils/TimeSource;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.apache.cassandra.utils.TimeSource, long, long, java.util.concurrent.TimeUnit);
    descriptor: (Lorg/apache/cassandra/utils/TimeSource;JJLjava/util/concurrent/TimeUnit;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // org.apache.cassandra.utils.SlidingTimeRate this
        start local 1 // org.apache.cassandra.utils.TimeSource timeSource
        start local 2 // long size
        start local 4 // long precision
        start local 6 // java.util.concurrent.TimeUnit unit
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 36
            aload 0 /* this */
            new java.util.concurrent.ConcurrentSkipListMap
            dup
            invokespecial java.util.concurrent.ConcurrentSkipListMap.<init>:()V
            putfield org.apache.cassandra.utils.SlidingTimeRate.counters:Ljava/util/concurrent/ConcurrentSkipListMap;
         2: .line 37
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            lconst_0
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
            putfield org.apache.cassandra.utils.SlidingTimeRate.lastCounterTimestamp:Ljava/util/concurrent/atomic/AtomicLong;
         3: .line 38
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantReadWriteLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantReadWriteLock.<init>:()V
            putfield org.apache.cassandra.utils.SlidingTimeRate.pruneLock:Ljava/util/concurrent/locks/ReadWriteLock;
         4: .line 51
            lload 2 /* size */
            lload 4 /* precision */
            lcmp
            ifle 5
            iconst_1
            goto 6
      StackMap locals: org.apache.cassandra.utils.SlidingTimeRate org.apache.cassandra.utils.TimeSource long long java.util.concurrent.TimeUnit
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: ldc "Size should be greater than precision."
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/Object;)V
         7: .line 52
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            lload 4 /* precision */
            aload 6 /* unit */
            invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
            lconst_1
            lcmp
            iflt 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: ldc "Precision must be greater than or equal to 1 millisecond."
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/Object;)V
        10: .line 53
            aload 0 /* this */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            lload 2 /* size */
            aload 6 /* unit */
            invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
            putfield org.apache.cassandra.utils.SlidingTimeRate.sizeInMillis:J
        11: .line 54
            aload 0 /* this */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            lload 4 /* precision */
            aload 6 /* unit */
            invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
            putfield org.apache.cassandra.utils.SlidingTimeRate.precisionInMillis:J
        12: .line 55
            aload 0 /* this */
            aload 1 /* timeSource */
            putfield org.apache.cassandra.utils.SlidingTimeRate.timeSource:Lorg/apache/cassandra/utils/TimeSource;
        13: .line 56
            return
        end local 6 // java.util.concurrent.TimeUnit unit
        end local 4 // long precision
        end local 2 // long size
        end local 1 // org.apache.cassandra.utils.TimeSource timeSource
        end local 0 // org.apache.cassandra.utils.SlidingTimeRate this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lorg/apache/cassandra/utils/SlidingTimeRate;
            0   14     1  timeSource  Lorg/apache/cassandra/utils/TimeSource;
            0   14     2        size  J
            0   14     4   precision  J
            0   14     6        unit  Ljava/util/concurrent/TimeUnit;
    MethodParameters:
            Name  Flags
      timeSource  
      size        
      precision   
      unit        

  public void update(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // org.apache.cassandra.utils.SlidingTimeRate this
        start local 1 // int delta
         0: .line 63
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.pruneLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         1: .line 68
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.timeSource:Lorg/apache/cassandra/utils/TimeSource;
            invokeinterface org.apache.cassandra.utils.TimeSource.currentTimeMillis:()J
            lstore 2 /* now */
        start local 2 // long now
         2: .line 69
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.lastCounterTimestamp:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
            lstore 4 /* lastTimestamp */
        start local 4 // long lastTimestamp
         3: .line 70
            lload 2 /* now */
            lload 4 /* lastTimestamp */
            lsub
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.precisionInMillis:J
            lcmp
            ifge 4
            iconst_1
            goto 5
      StackMap locals: long long
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 6 /* isWithinPrecisionRange */
        start local 6 // boolean isWithinPrecisionRange
         6: .line 71
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.counters:Ljava/util/concurrent/ConcurrentSkipListMap;
            lload 4 /* lastTimestamp */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.util.concurrent.ConcurrentSkipListMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.concurrent.atomic.AtomicInteger
            astore 7 /* lastCounter */
        start local 7 // java.util.concurrent.atomic.AtomicInteger lastCounter
         7: .line 74
            aload 7 /* lastCounter */
            ifnull 10
            iload 6 /* isWithinPrecisionRange */
            ifeq 10
         8: .line 76
            aload 7 /* lastCounter */
            iload 1 /* delta */
            invokevirtual java.util.concurrent.atomic.AtomicInteger.addAndGet:(I)I
            pop
         9: .line 78
            goto 18
        10: .line 82
      StackMap locals: int java.util.concurrent.atomic.AtomicInteger
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.lastCounterTimestamp:Ljava/util/concurrent/atomic/AtomicLong;
            lload 4 /* lastTimestamp */
            lload 2 /* now */
            invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
            ifeq 1
        11: .line 84
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.counters:Ljava/util/concurrent/ConcurrentSkipListMap;
            lload 2 /* now */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iload 1 /* delta */
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            invokevirtual java.util.concurrent.ConcurrentSkipListMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.concurrent.atomic.AtomicInteger
            astore 8 /* existing */
        start local 8 // java.util.concurrent.atomic.AtomicInteger existing
        12: .line 85
            aload 8 /* existing */
            ifnull 18
        13: .line 87
            aload 8 /* existing */
            iload 1 /* delta */
            invokevirtual java.util.concurrent.atomic.AtomicInteger.addAndGet:(I)I
            pop
        end local 8 // java.util.concurrent.atomic.AtomicInteger existing
        end local 7 // java.util.concurrent.atomic.AtomicInteger lastCounter
        end local 6 // boolean isWithinPrecisionRange
        end local 4 // long lastTimestamp
        end local 2 // long now
        14: .line 93
            goto 18
        15: .line 95
      StackMap locals: org.apache.cassandra.utils.SlidingTimeRate int
      StackMap stack: java.lang.Throwable
            astore 9
        16: .line 96
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.pruneLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        17: .line 97
            aload 9
            athrow
        18: .line 96
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.pruneLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        19: .line 98
            return
        end local 1 // int delta
        end local 0 // org.apache.cassandra.utils.SlidingTimeRate this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   20     0                    this  Lorg/apache/cassandra/utils/SlidingTimeRate;
            0   20     1                   delta  I
            2   14     2                     now  J
            3   14     4           lastTimestamp  J
            6   14     6  isWithinPrecisionRange  Z
            7   14     7             lastCounter  Ljava/util/concurrent/atomic/AtomicInteger;
           12   14     8                existing  Ljava/util/concurrent/atomic/AtomicInteger;
      Exception table:
        from    to  target  type
           1    15      15  any
    MethodParameters:
       Name  Flags
      delta  

  public double get(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=18, args_size=3
        start local 0 // org.apache.cassandra.utils.SlidingTimeRate this
        start local 1 // long toAgo
        start local 3 // java.util.concurrent.TimeUnit unit
         0: .line 106
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.pruneLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         1: .line 109
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            lload 1 /* toAgo */
            aload 3 /* unit */
            invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
            lstore 4 /* toAgoInMillis */
        start local 4 // long toAgoInMillis
         2: .line 110
            lload 4 /* toAgoInMillis */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.sizeInMillis:J
            lcmp
            ifge 3
            iconst_1
            goto 4
      StackMap locals: long
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: ldc "Cannot get rate in the past!"
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/Object;)V
         5: .line 112
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.timeSource:Lorg/apache/cassandra/utils/TimeSource;
            invokeinterface org.apache.cassandra.utils.TimeSource.currentTimeMillis:()J
            lstore 6 /* now */
        start local 6 // long now
         6: .line 113
            lconst_0
            lstore 8 /* sum */
        start local 8 // long sum
         7: .line 114
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.counters:Ljava/util/concurrent/ConcurrentSkipListMap;
         8: .line 115
            lload 6 /* now */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.sizeInMillis:J
            lsub
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            iconst_1
            invokevirtual java.util.concurrent.ConcurrentSkipListMap.tailMap:(Ljava/lang/Object;Z)Ljava/util/concurrent/ConcurrentNavigableMap;
         9: .line 116
            lload 6 /* now */
            lload 4 /* toAgoInMillis */
            lsub
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            iconst_1
            invokeinterface java.util.concurrent.ConcurrentNavigableMap.headMap:(Ljava/lang/Object;Z)Ljava/util/concurrent/ConcurrentNavigableMap;
        10: .line 114
            astore 10 /* tailCounters */
        start local 10 // java.util.concurrent.ConcurrentNavigableMap tailCounters
        11: .line 117
            aload 10 /* tailCounters */
            invokeinterface java.util.concurrent.ConcurrentNavigableMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 12
            goto 14
      StackMap locals: org.apache.cassandra.utils.SlidingTimeRate long java.util.concurrent.TimeUnit long long long java.util.concurrent.ConcurrentNavigableMap top java.util.Iterator
      StackMap stack:
        12: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.concurrent.atomic.AtomicInteger
            astore 11 /* i */
        start local 11 // java.util.concurrent.atomic.AtomicInteger i
        13: .line 119
            lload 8 /* sum */
            aload 11 /* i */
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            i2l
            ladd
            lstore 8 /* sum */
        end local 11 // java.util.concurrent.atomic.AtomicInteger i
        14: .line 117
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        15: .line 122
            lload 8 /* sum */
            lconst_0
            lcmp
            ifne 17
        16: .line 123
            lload 8 /* sum */
            l2d
            goto 18
        17: .line 124
      StackMap locals: org.apache.cassandra.utils.SlidingTimeRate long java.util.concurrent.TimeUnit long long long java.util.concurrent.ConcurrentNavigableMap
      StackMap stack:
            lload 8 /* sum */
            l2d
            ldc 1000
            lload 6 /* now */
            lload 4 /* toAgoInMillis */
            lsub
            aload 10 /* tailCounters */
            invokeinterface java.util.concurrent.ConcurrentNavigableMap.firstKey:()Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lsub
            invokestatic java.lang.Math.max:(JJ)J
            l2d
            ddiv
        18: .line 122
      StackMap locals:
      StackMap stack: double
            dstore 11 /* rateInMillis */
        start local 11 // double rateInMillis
        19: .line 125
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            lconst_1
            aload 3 /* unit */
            invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
            l2d
            dstore 13 /* multiplier */
        start local 13 // double multiplier
        20: .line 126
            dload 11 /* rateInMillis */
            dload 13 /* multiplier */
            dmul
            dstore 16
        21: .line 130
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.pruneLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        22: .line 126
            dload 16
            dreturn
        end local 13 // double multiplier
        end local 11 // double rateInMillis
        end local 10 // java.util.concurrent.ConcurrentNavigableMap tailCounters
        end local 8 // long sum
        end local 6 // long now
        end local 4 // long toAgoInMillis
        23: .line 129
      StackMap locals: org.apache.cassandra.utils.SlidingTimeRate long java.util.concurrent.TimeUnit
      StackMap stack: java.lang.Throwable
            astore 15
        24: .line 130
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.pruneLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        25: .line 131
            aload 15
            athrow
        end local 3 // java.util.concurrent.TimeUnit unit
        end local 1 // long toAgo
        end local 0 // org.apache.cassandra.utils.SlidingTimeRate this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   26     0           this  Lorg/apache/cassandra/utils/SlidingTimeRate;
            0   26     1          toAgo  J
            0   26     3           unit  Ljava/util/concurrent/TimeUnit;
            2   23     4  toAgoInMillis  J
            6   23     6            now  J
            7   23     8            sum  J
           11   23    10   tailCounters  Ljava/util/concurrent/ConcurrentNavigableMap<Ljava/lang/Long;Ljava/util/concurrent/atomic/AtomicInteger;>;
           13   14    11              i  Ljava/util/concurrent/atomic/AtomicInteger;
           19   23    11   rateInMillis  D
           20   23    13     multiplier  D
      Exception table:
        from    to  target  type
           1    21      23  any
    MethodParameters:
       Name  Flags
      toAgo  
      unit   

  public double get(java.util.concurrent.TimeUnit);
    descriptor: (Ljava/util/concurrent/TimeUnit;)D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.cassandra.utils.SlidingTimeRate this
        start local 1 // java.util.concurrent.TimeUnit unit
         0: .line 139
            aload 0 /* this */
            lconst_0
            aload 1 /* unit */
            invokevirtual org.apache.cassandra.utils.SlidingTimeRate.get:(JLjava/util/concurrent/TimeUnit;)D
            dreturn
        end local 1 // java.util.concurrent.TimeUnit unit
        end local 0 // org.apache.cassandra.utils.SlidingTimeRate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/utils/SlidingTimeRate;
            0    1     1  unit  Ljava/util/concurrent/TimeUnit;
    MethodParameters:
      Name  Flags
      unit  

  public void prune();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // org.apache.cassandra.utils.SlidingTimeRate this
         0: .line 147
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.pruneLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         1: .line 150
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.timeSource:Lorg/apache/cassandra/utils/TimeSource;
            invokeinterface org.apache.cassandra.utils.TimeSource.currentTimeMillis:()J
            lstore 1 /* now */
        start local 1 // long now
         2: .line 151
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.counters:Ljava/util/concurrent/ConcurrentSkipListMap;
            lload 1 /* now */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.sizeInMillis:J
            lsub
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            iconst_0
            invokevirtual java.util.concurrent.ConcurrentSkipListMap.headMap:(Ljava/lang/Object;Z)Ljava/util/concurrent/ConcurrentNavigableMap;
            invokeinterface java.util.concurrent.ConcurrentNavigableMap.clear:()V
        end local 1 // long now
         3: .line 152
            goto 7
         4: .line 154
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 155
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.pruneLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         6: .line 156
            aload 3
            athrow
         7: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.pruneLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         8: .line 157
            return
        end local 0 // org.apache.cassandra.utils.SlidingTimeRate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/apache/cassandra/utils/SlidingTimeRate;
            2    3     1   now  J
      Exception table:
        from    to  target  type
           1     4       4  any

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.utils.SlidingTimeRate this
         0: .line 162
            aload 0 /* this */
            getfield org.apache.cassandra.utils.SlidingTimeRate.counters:Ljava/util/concurrent/ConcurrentSkipListMap;
            invokevirtual java.util.concurrent.ConcurrentSkipListMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            new java.util.concurrent.atomic.AtomicInteger
            dup
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
            invokedynamic apply()Ljava/util/function/BinaryOperator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
                  org/apache/cassandra/utils/SlidingTimeRate.lambda$0(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger;)Ljava/util/concurrent/atomic/AtomicInteger; (6)
                  (Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger;)Ljava/util/concurrent/atomic/AtomicInteger;
            invokeinterface java.util.stream.Stream.reduce:(Ljava/lang/Object;Ljava/util/function/BinaryOperator;)Ljava/lang/Object;
            checkcast java.util.concurrent.atomic.AtomicInteger
         1: .line 165
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
         2: .line 162
            ireturn
        end local 0 // org.apache.cassandra.utils.SlidingTimeRate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/utils/SlidingTimeRate;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.google.common.annotations.VisibleForTesting()

  private static java.util.concurrent.atomic.AtomicInteger lambda$0(java.util.concurrent.atomic.AtomicInteger, java.util.concurrent.atomic.AtomicInteger);
    descriptor: (Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/concurrent/atomic/AtomicInteger;)Ljava/util/concurrent/atomic/AtomicInteger;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.concurrent.atomic.AtomicInteger v1
        start local 1 // java.util.concurrent.atomic.AtomicInteger v2
         0: .line 163
            aload 0 /* v1 */
            aload 1 /* v2 */
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            invokevirtual java.util.concurrent.atomic.AtomicInteger.addAndGet:(I)I
            pop
         1: .line 164
            aload 0 /* v1 */
            areturn
        end local 1 // java.util.concurrent.atomic.AtomicInteger v2
        end local 0 // java.util.concurrent.atomic.AtomicInteger v1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    v1  Ljava/util/concurrent/atomic/AtomicInteger;
            0    2     1    v2  Ljava/util/concurrent/atomic/AtomicInteger;
}
SourceFile: "SlidingTimeRate.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles