public class com.codahale.metrics.Timer implements com.codahale.metrics.Metered, com.codahale.metrics.Sampling
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.codahale.metrics.Timer
  super_class: java.lang.Object
{
  private final com.codahale.metrics.Meter meter;
    descriptor: Lcom/codahale/metrics/Meter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.codahale.metrics.Histogram histogram;
    descriptor: Lcom/codahale/metrics/Histogram;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.codahale.metrics.Clock clock;
    descriptor: Lcom/codahale/metrics/Clock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.codahale.metrics.Timer this
         0: .line 59
            aload 0 /* this */
            new com.codahale.metrics.ExponentiallyDecayingReservoir
            dup
            invokespecial com.codahale.metrics.ExponentiallyDecayingReservoir.<init>:()V
            invokespecial com.codahale.metrics.Timer.<init>:(Lcom/codahale/metrics/Reservoir;)V
         1: .line 60
            return
        end local 0 // com.codahale.metrics.Timer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/codahale/metrics/Timer;

  public void <init>(com.codahale.metrics.Reservoir);
    descriptor: (Lcom/codahale/metrics/Reservoir;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.codahale.metrics.Timer this
        start local 1 // com.codahale.metrics.Reservoir reservoir
         0: .line 68
            aload 0 /* this */
            aload 1 /* reservoir */
            invokestatic com.codahale.metrics.Clock.defaultClock:()Lcom/codahale/metrics/Clock;
            invokespecial com.codahale.metrics.Timer.<init>:(Lcom/codahale/metrics/Reservoir;Lcom/codahale/metrics/Clock;)V
         1: .line 69
            return
        end local 1 // com.codahale.metrics.Reservoir reservoir
        end local 0 // com.codahale.metrics.Timer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/codahale/metrics/Timer;
            0    2     1  reservoir  Lcom/codahale/metrics/Reservoir;
    MethodParameters:
           Name  Flags
      reservoir  

  public void <init>(com.codahale.metrics.Reservoir, com.codahale.metrics.Clock);
    descriptor: (Lcom/codahale/metrics/Reservoir;Lcom/codahale/metrics/Clock;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.codahale.metrics.Timer this
        start local 1 // com.codahale.metrics.Reservoir reservoir
        start local 2 // com.codahale.metrics.Clock clock
         0: .line 77
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 78
            aload 0 /* this */
            new com.codahale.metrics.Meter
            dup
            aload 2 /* clock */
            invokespecial com.codahale.metrics.Meter.<init>:(Lcom/codahale/metrics/Clock;)V
            putfield com.codahale.metrics.Timer.meter:Lcom/codahale/metrics/Meter;
         2: .line 79
            aload 0 /* this */
            aload 2 /* clock */
            putfield com.codahale.metrics.Timer.clock:Lcom/codahale/metrics/Clock;
         3: .line 80
            aload 0 /* this */
            new com.codahale.metrics.Histogram
            dup
            aload 1 /* reservoir */
            invokespecial com.codahale.metrics.Histogram.<init>:(Lcom/codahale/metrics/Reservoir;)V
            putfield com.codahale.metrics.Timer.histogram:Lcom/codahale/metrics/Histogram;
         4: .line 81
            return
        end local 2 // com.codahale.metrics.Clock clock
        end local 1 // com.codahale.metrics.Reservoir reservoir
        end local 0 // com.codahale.metrics.Timer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/codahale/metrics/Timer;
            0    5     1  reservoir  Lcom/codahale/metrics/Reservoir;
            0    5     2      clock  Lcom/codahale/metrics/Clock;
    MethodParameters:
           Name  Flags
      reservoir  
      clock      

  public void update(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.codahale.metrics.Timer this
        start local 1 // long duration
        start local 3 // java.util.concurrent.TimeUnit unit
         0: .line 90
            aload 0 /* this */
            aload 3 /* unit */
            lload 1 /* duration */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            invokevirtual com.codahale.metrics.Timer.update:(J)V
         1: .line 91
            return
        end local 3 // java.util.concurrent.TimeUnit unit
        end local 1 // long duration
        end local 0 // com.codahale.metrics.Timer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/codahale/metrics/Timer;
            0    2     1  duration  J
            0    2     3      unit  Ljava/util/concurrent/TimeUnit;
    MethodParameters:
          Name  Flags
      duration  
      unit      

  public void update(java.time.Duration);
    descriptor: (Ljava/time/Duration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.codahale.metrics.Timer this
        start local 1 // java.time.Duration duration
         0: .line 99
            aload 0 /* this */
            aload 1 /* duration */
            invokevirtual java.time.Duration.toNanos:()J
            invokevirtual com.codahale.metrics.Timer.update:(J)V
         1: .line 100
            return
        end local 1 // java.time.Duration duration
        end local 0 // com.codahale.metrics.Timer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/codahale/metrics/Timer;
            0    2     1  duration  Ljava/time/Duration;
    MethodParameters:
          Name  Flags
      duration  

  public <T> T time(java.util.concurrent.Callable<T>);
    descriptor: (Ljava/util/concurrent/Callable;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // com.codahale.metrics.Timer this
        start local 1 // java.util.concurrent.Callable event
         0: .line 112
            aload 0 /* this */
            getfield com.codahale.metrics.Timer.clock:Lcom/codahale/metrics/Clock;
            invokevirtual com.codahale.metrics.Clock.getTick:()J
            lstore 2 /* startTime */
        start local 2 // long startTime
         1: .line 114
            aload 1 /* event */
            invokeinterface java.util.concurrent.Callable.call:()Ljava/lang/Object;
            astore 5
         2: .line 116
            aload 0 /* this */
            aload 0 /* this */
            getfield com.codahale.metrics.Timer.clock:Lcom/codahale/metrics/Clock;
            invokevirtual com.codahale.metrics.Clock.getTick:()J
            lload 2 /* startTime */
            lsub
            invokevirtual com.codahale.metrics.Timer.update:(J)V
         3: .line 114
            aload 5
            areturn
         4: .line 115
      StackMap locals: com.codahale.metrics.Timer java.util.concurrent.Callable long
      StackMap stack: java.lang.Throwable
            astore 4
         5: .line 116
            aload 0 /* this */
            aload 0 /* this */
            getfield com.codahale.metrics.Timer.clock:Lcom/codahale/metrics/Clock;
            invokevirtual com.codahale.metrics.Clock.getTick:()J
            lload 2 /* startTime */
            lsub
            invokevirtual com.codahale.metrics.Timer.update:(J)V
         6: .line 117
            aload 4
            athrow
        end local 2 // long startTime
        end local 1 // java.util.concurrent.Callable event
        end local 0 // com.codahale.metrics.Timer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lcom/codahale/metrics/Timer;
            0    7     1      event  Ljava/util/concurrent/Callable<TT;>;
            1    7     2  startTime  J
      Exception table:
        from    to  target  type
           1     2       4  any
    Exceptions:
      throws java.lang.Exception
    Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/Callable<TT;>;)TT;
    MethodParameters:
       Name  Flags
      event  

  public <T> T timeSupplier(java.util.function.Supplier<T>);
    descriptor: (Ljava/util/function/Supplier;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // com.codahale.metrics.Timer this
        start local 1 // java.util.function.Supplier event
         0: .line 130
            aload 0 /* this */
            getfield com.codahale.metrics.Timer.clock:Lcom/codahale/metrics/Clock;
            invokevirtual com.codahale.metrics.Clock.getTick:()J
            lstore 2 /* startTime */
        start local 2 // long startTime
         1: .line 132
            aload 1 /* event */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            astore 5
         2: .line 134
            aload 0 /* this */
            aload 0 /* this */
            getfield com.codahale.metrics.Timer.clock:Lcom/codahale/metrics/Clock;
            invokevirtual com.codahale.metrics.Clock.getTick:()J
            lload 2 /* startTime */
            lsub
            invokevirtual com.codahale.metrics.Timer.update:(J)V
         3: .line 132
            aload 5
            areturn
         4: .line 133
      StackMap locals: com.codahale.metrics.Timer java.util.function.Supplier long
      StackMap stack: java.lang.Throwable
            astore 4
         5: .line 134
            aload 0 /* this */
            aload 0 /* this */
            getfield com.codahale.metrics.Timer.clock:Lcom/codahale/metrics/Clock;
            invokevirtual com.codahale.metrics.Clock.getTick:()J
            lload 2 /* startTime */
            lsub
            invokevirtual com.codahale.metrics.Timer.update:(J)V
         6: .line 135
            aload 4
            athrow
        end local 2 // long startTime
        end local 1 // java.util.function.Supplier event
        end local 0 // com.codahale.metrics.Timer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lcom/codahale/metrics/Timer;
            0    7     1      event  Ljava/util/function/Supplier<TT;>;
            1    7     2  startTime  J
      Exception table:
        from    to  target  type
           1     2       4  any
    Signature: <T:Ljava/lang/Object;>(Ljava/util/function/Supplier<TT;>;)TT;
    MethodParameters:
       Name  Flags
      event  

  public void time(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.codahale.metrics.Timer this
        start local 1 // java.lang.Runnable event
         0: .line 145
            aload 0 /* this */
            getfield com.codahale.metrics.Timer.clock:Lcom/codahale/metrics/Clock;
            invokevirtual com.codahale.metrics.Clock.getTick:()J
            lstore 2 /* startTime */
        start local 2 // long startTime
         1: .line 147
            aload 1 /* event */
            invokeinterface java.lang.Runnable.run:()V
         2: .line 148
            goto 6
      StackMap locals: com.codahale.metrics.Timer java.lang.Runnable long
      StackMap stack: java.lang.Throwable
         3: astore 4
         4: .line 149
            aload 0 /* this */
            aload 0 /* this */
            getfield com.codahale.metrics.Timer.clock:Lcom/codahale/metrics/Clock;
            invokevirtual com.codahale.metrics.Clock.getTick:()J
            lload 2 /* startTime */
            lsub
            invokevirtual com.codahale.metrics.Timer.update:(J)V
         5: .line 150
            aload 4
            athrow
         6: .line 149
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.codahale.metrics.Timer.clock:Lcom/codahale/metrics/Clock;
            invokevirtual com.codahale.metrics.Clock.getTick:()J
            lload 2 /* startTime */
            lsub
            invokevirtual com.codahale.metrics.Timer.update:(J)V
         7: .line 151
            return
        end local 2 // long startTime
        end local 1 // java.lang.Runnable event
        end local 0 // com.codahale.metrics.Timer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lcom/codahale/metrics/Timer;
            0    8     1      event  Ljava/lang/Runnable;
            1    8     2  startTime  J
      Exception table:
        from    to  target  type
           1     3       3  any
    MethodParameters:
       Name  Flags
      event  

  public com.codahale.metrics.Timer$Context time();
    descriptor: ()Lcom/codahale/metrics/Timer$Context;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.codahale.metrics.Timer this
         0: .line 160
            new com.codahale.metrics.Timer$Context
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.codahale.metrics.Timer.clock:Lcom/codahale/metrics/Clock;
            invokespecial com.codahale.metrics.Timer$Context.<init>:(Lcom/codahale/metrics/Timer;Lcom/codahale/metrics/Clock;)V
            areturn
        end local 0 // com.codahale.metrics.Timer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/codahale/metrics/Timer;

  public long getCount();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.codahale.metrics.Timer this
         0: .line 165
            aload 0 /* this */
            getfield com.codahale.metrics.Timer.histogram:Lcom/codahale/metrics/Histogram;
            invokevirtual com.codahale.metrics.Histogram.getCount:()J
            lreturn
        end local 0 // com.codahale.metrics.Timer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/codahale/metrics/Timer;

  public double getFifteenMinuteRate();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.codahale.metrics.Timer this
         0: .line 170
            aload 0 /* this */
            getfield com.codahale.metrics.Timer.meter:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.getFifteenMinuteRate:()D
            dreturn
        end local 0 // com.codahale.metrics.Timer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/codahale/metrics/Timer;

  public double getFiveMinuteRate();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.codahale.metrics.Timer this
         0: .line 175
            aload 0 /* this */
            getfield com.codahale.metrics.Timer.meter:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.getFiveMinuteRate:()D
            dreturn
        end local 0 // com.codahale.metrics.Timer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/codahale/metrics/Timer;

  public double getMeanRate();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.codahale.metrics.Timer this
         0: .line 180
            aload 0 /* this */
            getfield com.codahale.metrics.Timer.meter:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.getMeanRate:()D
            dreturn
        end local 0 // com.codahale.metrics.Timer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/codahale/metrics/Timer;

  public double getOneMinuteRate();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.codahale.metrics.Timer this
         0: .line 185
            aload 0 /* this */
            getfield com.codahale.metrics.Timer.meter:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.getOneMinuteRate:()D
            dreturn
        end local 0 // com.codahale.metrics.Timer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/codahale/metrics/Timer;

  public com.codahale.metrics.Snapshot getSnapshot();
    descriptor: ()Lcom/codahale/metrics/Snapshot;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.codahale.metrics.Timer this
         0: .line 190
            aload 0 /* this */
            getfield com.codahale.metrics.Timer.histogram:Lcom/codahale/metrics/Histogram;
            invokevirtual com.codahale.metrics.Histogram.getSnapshot:()Lcom/codahale/metrics/Snapshot;
            areturn
        end local 0 // com.codahale.metrics.Timer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/codahale/metrics/Timer;

  private void update(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.codahale.metrics.Timer this
        start local 1 // long duration
         0: .line 194
            lload 1 /* duration */
            lconst_0
            lcmp
            iflt 3
         1: .line 195
            aload 0 /* this */
            getfield com.codahale.metrics.Timer.histogram:Lcom/codahale/metrics/Histogram;
            lload 1 /* duration */
            invokevirtual com.codahale.metrics.Histogram.update:(J)V
         2: .line 196
            aload 0 /* this */
            getfield com.codahale.metrics.Timer.meter:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
         3: .line 198
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long duration
        end local 0 // com.codahale.metrics.Timer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/codahale/metrics/Timer;
            0    4     1  duration  J
    MethodParameters:
          Name  Flags
      duration  
}
SourceFile: "Timer.java"
NestMembers:
  com.codahale.metrics.Timer$Context
InnerClasses:
  public Context = com.codahale.metrics.Timer$Context of com.codahale.metrics.Timer