summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmds/statsd/src/metrics/MetricProducer.h6
-rw-r--r--cmds/statsd/src/metrics/ValueMetricProducer.cpp2
2 files changed, 6 insertions, 2 deletions
diff --git a/cmds/statsd/src/metrics/MetricProducer.h b/cmds/statsd/src/metrics/MetricProducer.h
index 99cb5d4389c7..046f9963b351 100644
--- a/cmds/statsd/src/metrics/MetricProducer.h
+++ b/cmds/statsd/src/metrics/MetricProducer.h
@@ -69,7 +69,7 @@ public:
mTimeBaseNs(timeBaseNs),
mCurrentBucketStartTimeNs(timeBaseNs),
mCurrentBucketNum(0),
- mCondition(conditionIndex >= 0 ? ConditionState::kUnknown : ConditionState::kTrue),
+ mCondition(initialCondition(conditionIndex)),
mConditionSliced(false),
mWizard(wizard),
mConditionTrackerIndex(conditionIndex),
@@ -82,6 +82,10 @@ public:
virtual ~MetricProducer(){};
+ ConditionState initialCondition(const int conditionIndex) const {
+ return conditionIndex >= 0 ? ConditionState::kUnknown : ConditionState::kTrue;
+ }
+
/**
* Forces this metric to split into a partial bucket right now. If we're past a full bucket, we
* first call the standard flushing code to flush up to the latest full bucket. Then we call
diff --git a/cmds/statsd/src/metrics/ValueMetricProducer.cpp b/cmds/statsd/src/metrics/ValueMetricProducer.cpp
index 9de62a2cce03..27ee57013fda 100644
--- a/cmds/statsd/src/metrics/ValueMetricProducer.cpp
+++ b/cmds/statsd/src/metrics/ValueMetricProducer.cpp
@@ -394,7 +394,7 @@ void ValueMetricProducer::onConditionChangedLocked(const bool condition,
invalidateCurrentBucket();
// Something weird happened. If we received another event if the future, the condition might
// be wrong.
- mCondition = ConditionState::kUnknown;
+ mCondition = initialCondition(mConditionTrackerIndex);
}
// This part should alway be called.