|
18 | 18 | import com.google.errorprone.annotations.concurrent.GuardedBy; |
19 | 19 |
|
20 | 20 | import java.util.Objects; |
21 | | -import java.util.concurrent.atomic.AtomicLong; |
| 21 | +import java.util.concurrent.atomic.LongAdder; |
22 | 22 | import java.util.concurrent.locks.Condition; |
23 | 23 | import java.util.concurrent.locks.Lock; |
24 | 24 | import java.util.concurrent.locks.ReentrantLock; |
@@ -53,10 +53,10 @@ final class TaskControl |
53 | 53 | private State state; |
54 | 54 |
|
55 | 55 | private volatile long periodStart; |
56 | | - private final AtomicLong startNanos = new AtomicLong(); |
57 | | - private final AtomicLong scheduledNanos = new AtomicLong(); |
58 | | - private final AtomicLong blockedNanos = new AtomicLong(); |
59 | | - private final AtomicLong waitNanos = new AtomicLong(); |
| 56 | + private final LongAdder startNanos = new LongAdder(); |
| 57 | + private final LongAdder scheduledNanos = new LongAdder(); |
| 58 | + private final LongAdder blockedNanos = new LongAdder(); |
| 59 | + private final LongAdder waitNanos = new LongAdder(); |
60 | 60 | private final int hashCode; |
61 | 61 | private volatile Thread thread; |
62 | 62 |
|
@@ -275,10 +275,10 @@ private void recordPeriodEnd(State state) |
275 | 275 | long now = ticker.read(); |
276 | 276 | long elapsed = now - periodStart; |
277 | 277 | switch (state) { |
278 | | - case RUNNING -> scheduledNanos.addAndGet(elapsed); |
279 | | - case BLOCKED -> blockedNanos.addAndGet(elapsed); |
280 | | - case NEW -> startNanos.addAndGet(elapsed); |
281 | | - case WAITING -> waitNanos.addAndGet(elapsed); |
| 278 | + case RUNNING -> scheduledNanos.add(elapsed); |
| 279 | + case BLOCKED -> blockedNanos.add(elapsed); |
| 280 | + case NEW -> startNanos.add(elapsed); |
| 281 | + case WAITING -> waitNanos.add(elapsed); |
282 | 282 | case INTERRUPTED, FINISHED -> {} |
283 | 283 | } |
284 | 284 | periodStart = now; |
@@ -307,22 +307,22 @@ public long elapsed() |
307 | 307 |
|
308 | 308 | public long getStartNanos() |
309 | 309 | { |
310 | | - return startNanos.get(); |
| 310 | + return startNanos.longValue(); |
311 | 311 | } |
312 | 312 |
|
313 | 313 | public long getWaitNanos() |
314 | 314 | { |
315 | | - return waitNanos.get(); |
| 315 | + return waitNanos.longValue(); |
316 | 316 | } |
317 | 317 |
|
318 | 318 | public long getScheduledNanos() |
319 | 319 | { |
320 | | - return scheduledNanos.get(); |
| 320 | + return scheduledNanos.longValue(); |
321 | 321 | } |
322 | 322 |
|
323 | 323 | public long getBlockedNanos() |
324 | 324 | { |
325 | | - return blockedNanos.get(); |
| 325 | + return blockedNanos.longValue(); |
326 | 326 | } |
327 | 327 |
|
328 | 328 | @Override |
|
0 commit comments