1 package com.atlassian.vcache.internal.core.metrics;
2
3 import java.util.function.LongConsumer;
4
5 import static java.util.Objects.requireNonNull;
6
7
8
9
10
11
12
13 public class ElapsedTimer implements AutoCloseable {
14 private final long startTime;
15 private final LongConsumer handler;
16
17
18
19
20
21
22 public ElapsedTimer(LongConsumer handler) {
23 this.startTime = System.nanoTime();
24 this.handler = requireNonNull(handler);
25 }
26
27 @Override
28 public void close() {
29 handler.accept(System.nanoTime() - startTime);
30 }
31 }