diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-01-05 20:58:33 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2019-01-05 20:58:33 +0000 |
commit | 0e7092d8b7a636ad18e953ae169e3b9f5e4ed421 (patch) | |
tree | 37d957381f3e15f18c0ae9f4cd59f399e7310468 /config | |
parent | 35d3636eeee07ed762d789d78f3565af671d8092 (diff) |
Do not sleep longer than necessary, and unify braces.
Diffstat (limited to 'config')
-rw-r--r-- | config/src/vespa/config/subscription/configsubscriptionset.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/config/src/vespa/config/subscription/configsubscriptionset.cpp b/config/src/vespa/config/subscription/configsubscriptionset.cpp index 2bbc43f9b5b..9b05535b22f 100644 --- a/config/src/vespa/config/subscription/configsubscriptionset.cpp +++ b/config/src/vespa/config/subscription/configsubscriptionset.cpp @@ -29,8 +29,9 @@ ConfigSubscriptionSet::acquireSnapshot(uint64_t timeoutInMillis, bool ignoreChan { if (_state == CLOSED) { return false; - } else if (_state == OPEN) + } else if (_state == OPEN) { _state = FROZEN; + } FastOS_Time timer; timer.SetNow(); @@ -39,7 +40,7 @@ ConfigSubscriptionSet::acquireSnapshot(uint64_t timeoutInMillis, bool ignoreChan bool inSync = false; LOG(debug, "Going into nextConfig loop, time left is %d", timeLeft); - while (_state != CLOSED && timeLeft >= 0 && !inSync) { + while ((_state != CLOSED) && (timeLeft >= 0) && !inSync) { size_t numChanged = 0; size_t numGenerationChanged = 0; bool generationsInSync = true; @@ -64,18 +65,20 @@ ConfigSubscriptionSet::acquireSnapshot(uint64_t timeoutInMillis, bool ignoreChan if (isGenerationNewer(subscription->getGeneration(), _currentGeneration)) { numGenerationChanged++; } - if (generation < 0) + if (generation < 0) { generation = subscription->getGeneration(); - if (subscription->getGeneration() != generation) + } + if (subscription->getGeneration() != generation) { generationsInSync = false; + } // Adjust timeout timeLeft = timeoutInMillis - static_cast<uint64_t>(timer.MilliSecsToNow()); } inSync = generationsInSync && (_subscriptionList.size() == numGenerationChanged) && (ignoreChange || numChanged > 0); lastGeneration = generation; timeLeft = timeoutInMillis - static_cast<uint64_t>(timer.MilliSecsToNow()); - if (!inSync && timeLeft > 0) { - std::this_thread::sleep_for(10ms); + if (!inSync && (timeLeft > 0)) { + std::this_thread::sleep_for(std::chrono::milliseconds(std::min(10, timeLeft))); } else { break; } |