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( std::unique_ptr<std::string> AnchoredSetVariable::resolveFirst(
const std::string &key) { const std::string &key) {
auto range = equal_range(key);
for (auto it = range.first; it != range.second; ++it) { if (auto search = this->find(key); search != this->end()) {
std::unique_ptr<std::string> b(new std::string()); auto b = std::make_unique<std::string>();
b->assign(it->second->getValue()); b->assign(search->second->getValue());
return b; return b;
} }
return nullptr; return nullptr;
} }

View File

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