Merge "Guardrail for pull cooldown/timeout" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
533a99f3b0
@@ -616,7 +616,7 @@ public final class StatsManager {
|
|||||||
/**
|
/**
|
||||||
* Set the cool down time of the pull in milliseconds. If two successive pulls are
|
* Set the cool down time of the pull in milliseconds. If two successive pulls are
|
||||||
* issued within the cool down, a cached version of the first pull will be used for the
|
* issued within the cool down, a cached version of the first pull will be used for the
|
||||||
* second pull.
|
* second pull. The minimum allowed cool down is 1 second.
|
||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
public Builder setCoolDownMillis(long coolDownMillis) {
|
public Builder setCoolDownMillis(long coolDownMillis) {
|
||||||
@@ -625,7 +625,8 @@ public final class StatsManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the maximum time the pull can take in milliseconds.
|
* Set the maximum time the pull can take in milliseconds. The maximum allowed timeout
|
||||||
|
* is 10 seconds.
|
||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
public Builder setTimeoutMillis(long timeoutMillis) {
|
public Builder setTimeoutMillis(long timeoutMillis) {
|
||||||
|
|||||||
@@ -313,8 +313,10 @@ void StatsPullerManager::RegisterPullAtomCallback(const int uid, const int32_t a
|
|||||||
// TODO(b/146439412): linkToDeath with the callback so that we can remove it
|
// TODO(b/146439412): linkToDeath with the callback so that we can remove it
|
||||||
// and delete the puller.
|
// and delete the puller.
|
||||||
StatsdStats::getInstance().notePullerCallbackRegistrationChanged(atomTag, /*registered=*/true);
|
StatsdStats::getInstance().notePullerCallbackRegistrationChanged(atomTag, /*registered=*/true);
|
||||||
kAllPullAtomInfo[{.atomTag = atomTag, .uid = useUid ? uid : -1}] =
|
int64_t actualCoolDownNs = coolDownNs < kMinCoolDownNs ? kMinCoolDownNs : coolDownNs;
|
||||||
new StatsCallbackPuller(atomTag, callback, coolDownNs, timeoutNs, additiveFields);
|
int64_t actualTimeoutNs = timeoutNs > kMaxTimeoutNs ? kMaxTimeoutNs : timeoutNs;
|
||||||
|
kAllPullAtomInfo[{.atomTag = atomTag, .uid = useUid ? uid : -1}] = new StatsCallbackPuller(
|
||||||
|
atomTag, callback, actualCoolDownNs, actualTimeoutNs, additiveFields);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsPullerManager::UnregisterPullAtomCallback(const int uid, const int32_t atomTag) {
|
void StatsPullerManager::UnregisterPullAtomCallback(const int uid, const int32_t atomTag) {
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ public:
|
|||||||
virtual ~StatsPullerManager() {
|
virtual ~StatsPullerManager() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Registers a receiver for tagId. It will be pulled on the nextPullTimeNs
|
// Registers a receiver for tagId. It will be pulled on the nextPullTimeNs
|
||||||
// and then every intervalNs thereafter.
|
// and then every intervalNs thereafter.
|
||||||
virtual void RegisterReceiver(int tagId, const ConfigKey& configKey,
|
virtual void RegisterReceiver(int tagId, const ConfigKey& configKey,
|
||||||
@@ -124,6 +125,8 @@ public:
|
|||||||
std::map<const PullerKey, sp<StatsPuller>> kAllPullAtomInfo;
|
std::map<const PullerKey, sp<StatsPuller>> kAllPullAtomInfo;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
const static int64_t kMinCoolDownNs = NS_PER_SEC;
|
||||||
|
const static int64_t kMaxTimeoutNs = 10 * NS_PER_SEC;
|
||||||
shared_ptr<IStatsCompanionService> mStatsCompanionService = nullptr;
|
shared_ptr<IStatsCompanionService> mStatsCompanionService = nullptr;
|
||||||
|
|
||||||
// A struct containing an atom id and a Config Key
|
// A struct containing an atom id and a Config Key
|
||||||
|
|||||||
Reference in New Issue
Block a user