Changed 'euqal_range()' + loop by 'find()' in resolveFirst() methods

This commit is contained in:
Ervin Hegedus 2024-03-29 16:32:34 +01:00
parent 625f9a5300
commit 7c4dcdfa4b
No known key found for this signature in database
GPG Key ID: 5FA5BC3F5EC41F61
2 changed files with 12 additions and 11 deletions

View File

@ -109,12 +109,13 @@ void AnchoredSetVariable::resolve(const std::string &key,
std::unique_ptr<std::string> AnchoredSetVariable::resolveFirst(
const std::string &key) {
auto range = equal_range(key);
for (auto it = range.first; it != range.second; ++it) {
std::unique_ptr<std::string> b(new std::string());
b->assign(it->second->getValue());
if (auto search = this->find(key); search != this->end()) {
auto b = std::make_unique<std::string>();
b->assign(search->second->getValue());
return b;
}
return nullptr;
}

View File

@ -67,13 +67,13 @@ bool InMemoryPerProcess::storeOrUpdateFirst(const std::string &key,
bool InMemoryPerProcess::updateFirst(const std::string &key,
const std::string &value) {
pthread_mutex_lock(&m_lock);
auto range = this->equal_range(key);
for (auto it = range.first; it != range.second; ++it) {
it->second.setValue(value);
if (auto search = this->find(key); search != this->end()) {
search->second.setValue(value);
pthread_mutex_unlock(&m_lock);
return true;
}
pthread_mutex_unlock(&m_lock);
return false;
}
@ -97,11 +97,11 @@ void InMemoryPerProcess::delIfExpired(const std::string& key) {
void InMemoryPerProcess::setExpiry(const std::string& key, int32_t expiry_seconds) {
pthread_mutex_lock(&m_lock);
auto range = this->equal_range(key);
for (auto it = range.first; it != range.second; ++it) {
it->second.setExpiry(expiry_seconds);
if (auto search = this->find(key); search != this->end()) {
search->second.setExpiry(expiry_seconds);
pthread_mutex_unlock(&m_lock);
return;
return;
}
// We allow an expiry value to be set for a key that has not (yet) had a value set.