Reset the condition to the initial state.
For conditions without a condition, the initial state is true, not unknown. Test: atest statsd_test Change-Id: Iba27a8ea82af9b9e5e1f8ee17f091f344674d14a
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user