Skip to content

Commit 8177e69

Browse files
authored
Merge pull request #659 from jglick/Timing.close
Lockless `Timing.close`
2 parents 4eba7d8 + 3432911 commit 8177e69

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

plugin/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsFlowExecution.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,11 @@ private Timing(TimingKind kind) {
426426
}
427427

428428
@Override public void close() {
429-
timings.merge(kind.name(), System.nanoTime() - start, Long::sum);
429+
// Not using ConcurrentHashMap::merge since it can acquire a lock:
430+
long delta = System.nanoTime() - start;
431+
Long prev = timings.get(kind.name());
432+
long nue = prev == null ? delta : prev + delta;
433+
timings.put(kind.name(), nue);
430434
}
431435
}
432436

0 commit comments

Comments
 (0)