KYLIN-2836 Fix timers counters and meters add synchronization impl This closes #75
Signed-off-by: Li Yang <liy...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/b4daa8a3 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/b4daa8a3 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/b4daa8a3 Branch: refs/heads/sync Commit: b4daa8a3198a99400629c79db9832070bbe063d0 Parents: 4196ddd Author: mingming.ge <mingming.ge@kyligence> Authored: Mon Sep 25 17:01:51 2017 +0800 Committer: Li Yang <liy...@apache.org> Committed: Fri Jan 26 17:22:46 2018 +0800 ---------------------------------------------------------------------- .../metrics/metrics2/CodahaleMetrics.java | 24 +++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/b4daa8a3/core-common/src/main/java/org/apache/kylin/common/metrics/metrics2/CodahaleMetrics.java ---------------------------------------------------------------------- diff --git a/core-common/src/main/java/org/apache/kylin/common/metrics/metrics2/CodahaleMetrics.java b/core-common/src/main/java/org/apache/kylin/common/metrics/metrics2/CodahaleMetrics.java index bae6cfb..e728759 100644 --- a/core-common/src/main/java/org/apache/kylin/common/metrics/metrics2/CodahaleMetrics.java +++ b/core-common/src/main/java/org/apache/kylin/common/metrics/metrics2/CodahaleMetrics.java @@ -144,9 +144,27 @@ public class CodahaleMetrics implements Metrics { for (Map.Entry<String, Metric> metric : metricRegistry.getMetrics().entrySet()) { metricRegistry.remove(metric.getKey()); } - timers.invalidateAll(); - counters.invalidateAll(); - meters.invalidateAll(); + + try { + timersLock.lock(); + timers.invalidateAll(); + } finally { + timersLock.unlock(); + } + + try { + countersLock.lock(); + counters.invalidateAll(); + } finally { + countersLock.unlock(); + } + + try { + metersLock.lock(); + meters.invalidateAll(); + } finally { + metersLock.unlock(); + } } @Override