in src/oomd/include/CgroupPath.cpp [126:156]
void CgroupPath::recomputeReadCache() {
// Recreate relative_cache_
relative_cache_.clear();
size_t s = 0;
for (size_t i = 0; i < cgroup_path_.size(); ++i) {
s += cgroup_path_.at(i).size();
if (i == cgroup_path_.size() - 1) {
break;
}
++s; // for the path separator
}
relative_cache_.reserve(s);
for (size_t i = 0; i < cgroup_path_.size(); ++i) {
relative_cache_ += cgroup_path_.at(i);
if (i == cgroup_path_.size() - 1) {
break;
}
relative_cache_ += '/';
}
// Recreate absolute_cache_
absolute_cache_.clear();
absolute_cache_.reserve(cgroup_fs_.size() + 1 + relative_cache_.size());
absolute_cache_ += cgroup_fs_;
if (relative_cache_.size()) {
absolute_cache_ += '/';
absolute_cache_ += relative_cache_;
}
}