Merge "logd: worst uid record watermark part four"

This commit is contained in:
Mark Salyzyn 2015-09-04 14:14:02 +00:00 committed by Gerrit Code Review
commit 0df400ec11
2 changed files with 11 additions and 9 deletions

View file

@ -238,7 +238,8 @@ void LogBuffer::maybePrune(log_id_t id) {
} }
} }
LogBufferElementCollection::iterator LogBuffer::erase(LogBufferElementCollection::iterator it) { LogBufferElementCollection::iterator LogBuffer::erase(
LogBufferElementCollection::iterator it, bool engageStats) {
LogBufferElement *e = *it; LogBufferElement *e = *it;
log_id_t id = e->getLogId(); log_id_t id = e->getLogId();
LogBufferIteratorMap::iterator f = mLastWorstUid[id].find(e->getUid()); LogBufferIteratorMap::iterator f = mLastWorstUid[id].find(e->getUid());
@ -247,7 +248,11 @@ LogBufferElementCollection::iterator LogBuffer::erase(LogBufferElementCollection
mLastWorstUid[id].erase(f); mLastWorstUid[id].erase(f);
} }
it = mLogElements.erase(it); it = mLogElements.erase(it);
stats.subtract(e); if (engageStats) {
stats.subtract(e);
} else {
stats.erase(e);
}
delete e; delete e;
return it; return it;
@ -442,9 +447,7 @@ void LogBuffer::prune(log_id_t id, unsigned long pruneRows, uid_t caller_uid) {
// merge any drops // merge any drops
if (dropped && last.merge(e, dropped)) { if (dropped && last.merge(e, dropped)) {
it = mLogElements.erase(it); it = erase(it, false);
stats.erase(e);
delete e;
continue; continue;
} }
@ -510,9 +513,7 @@ void LogBuffer::prune(log_id_t id, unsigned long pruneRows, uid_t caller_uid) {
stats.drop(e); stats.drop(e);
e->setDropped(1); e->setDropped(1);
if (last.merge(e, 1)) { if (last.merge(e, 1)) {
it = mLogElements.erase(it); it = erase(it, false);
stats.erase(e);
delete e;
} else { } else {
last.add(e); last.add(e);
mLastWorstUid[id][e->getUid()] = it; mLastWorstUid[id][e->getUid()] = it;

View file

@ -87,7 +87,8 @@ public:
private: private:
void maybePrune(log_id_t id); void maybePrune(log_id_t id);
void prune(log_id_t id, unsigned long pruneRows, uid_t uid = AID_ROOT); void prune(log_id_t id, unsigned long pruneRows, uid_t uid = AID_ROOT);
LogBufferElementCollection::iterator erase(LogBufferElementCollection::iterator it); LogBufferElementCollection::iterator erase(
LogBufferElementCollection::iterator it, bool engageStats = true);
}; };
#endif // _LOGD_LOG_BUFFER_H__ #endif // _LOGD_LOG_BUFFER_H__