summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/src/vespa/config/common/configupdate.cpp3
-rw-r--r--config/src/vespa/config/common/configupdate.h8
-rw-r--r--config/src/vespa/config/subscription/configsubscription.cpp24
-rw-r--r--config/src/vespa/config/subscription/configsubscription.h20
-rw-r--r--config/src/vespa/config/subscription/configsubscriptionset.cpp16
-rw-r--r--config/src/vespa/config/subscription/configsubscriptionset.h8
6 files changed, 22 insertions, 57 deletions
diff --git a/config/src/vespa/config/common/configupdate.cpp b/config/src/vespa/config/common/configupdate.cpp
index 55f12775a46..b18186363e6 100644
--- a/config/src/vespa/config/common/configupdate.cpp
+++ b/config/src/vespa/config/common/configupdate.cpp
@@ -10,8 +10,5 @@ ConfigUpdate::ConfigUpdate(ConfigValue value, bool changed, int64_t generation)
{
}
ConfigUpdate::~ConfigUpdate() = default;
-const ConfigValue & ConfigUpdate::getValue() const { return _value; }
-bool ConfigUpdate::hasChanged() const { return _hasChanged; }
-int64_t ConfigUpdate::getGeneration() const { return _generation; }
} // namespace config
diff --git a/config/src/vespa/config/common/configupdate.h b/config/src/vespa/config/common/configupdate.h
index 35d641615a0..5263f429718 100644
--- a/config/src/vespa/config/common/configupdate.h
+++ b/config/src/vespa/config/common/configupdate.h
@@ -16,10 +16,10 @@ public:
ConfigUpdate(const ConfigUpdate &) = delete;
ConfigUpdate & operator = (const ConfigUpdate &) = delete;
~ConfigUpdate();
- const ConfigValue & getValue() const;
- bool hasChanged() const;
- int64_t getGeneration() const;
- void merge(const ConfigUpdate & b) { _hasChanged = _hasChanged || b.hasChanged(); }
+ const ConfigValue & getValue() const noexcept { return _value; }
+ bool hasChanged() const noexcept { return _hasChanged; }
+ int64_t getGeneration() const noexcept { return _generation; }
+ void merge(const ConfigUpdate & b) noexcept { _hasChanged = _hasChanged || b.hasChanged(); }
private:
ConfigValue _value;
bool _hasChanged;
diff --git a/config/src/vespa/config/subscription/configsubscription.cpp b/config/src/vespa/config/subscription/configsubscription.cpp
index e0528f0246e..f145c26d551 100644
--- a/config/src/vespa/config/subscription/configsubscription.cpp
+++ b/config/src/vespa/config/subscription/configsubscription.cpp
@@ -63,12 +63,6 @@ ConfigSubscription::getGeneration() const
return _next->getGeneration();
}
-const ConfigKey &
-ConfigSubscription::getKey() const
-{
- return _key;
-}
-
void
ConfigSubscription::close()
{
@@ -80,24 +74,6 @@ ConfigSubscription::close()
}
void
-ConfigSubscription::reset()
-{
- _isChanged = false;
-}
-
-bool
-ConfigSubscription::isChanged() const
-{
- return _isChanged;
-}
-
-int64_t
-ConfigSubscription::getLastGenerationChanged() const
-{
- return _lastGenerationChanged;
-}
-
-void
ConfigSubscription::flip()
{
bool change = hasChanged();
diff --git a/config/src/vespa/config/subscription/configsubscription.h b/config/src/vespa/config/subscription/configsubscription.h
index 5938a085ec2..c6ce7eb6188 100644
--- a/config/src/vespa/config/subscription/configsubscription.h
+++ b/config/src/vespa/config/subscription/configsubscription.h
@@ -39,22 +39,22 @@ public:
*
* @return true if changed, false if not.
*/
- bool isChanged() const;
+ bool isChanged() const noexcept { return _isChanged; }
/**
* Returns the last generation that actually changed the config.
*/
- int64_t getLastGenerationChanged() const;
+ int64_t getLastGenerationChanged() const noexcept { return _lastGenerationChanged; }
/// Used by ConfigSubscriptionSet
- SubscriptionId getSubscriptionId() const { return _id; }
- const ConfigKey & getKey() const;
+ SubscriptionId getSubscriptionId() const noexcept { return _id; }
+ const ConfigKey & getKey() const noexcept { return _key; }
bool nextUpdate(int64_t generation, vespalib::steady_time deadline);
int64_t getGeneration() const;
bool hasChanged() const;
bool hasGenerationChanged() const;
void flip();
- void reset();
+ void reset() noexcept { _isChanged = false; }
void close();
// Used by ConfigManager
@@ -65,11 +65,11 @@ private:
const ConfigKey _key;
std::unique_ptr<Source> _source;
std::shared_ptr<IConfigHolder> _holder;
- std::unique_ptr<ConfigUpdate> _next;
- std::unique_ptr<ConfigUpdate> _current;
- bool _isChanged;
- int64_t _lastGenerationChanged;
- std::atomic<bool> _closed;
+ std::unique_ptr<ConfigUpdate> _next;
+ std::unique_ptr<ConfigUpdate> _current;
+ bool _isChanged;
+ int64_t _lastGenerationChanged;
+ std::atomic<bool> _closed;
};
typedef std::vector<ConfigSubscription::SP> SubscriptionList;
diff --git a/config/src/vespa/config/subscription/configsubscriptionset.cpp b/config/src/vespa/config/subscription/configsubscriptionset.cpp
index e106f21e4b2..1d5db778dda 100644
--- a/config/src/vespa/config/subscription/configsubscriptionset.cpp
+++ b/config/src/vespa/config/subscription/configsubscriptionset.cpp
@@ -18,7 +18,7 @@ using vespalib::steady_time;
namespace config {
ConfigSubscriptionSet::ConfigSubscriptionSet(std::shared_ptr<IConfigContext> context)
- : _maxNapTime(vespalib::adjustTimeoutByDetectedHz(10ms)),
+ : _maxNapTime(vespalib::adjustTimeoutByDetectedHz(20ms)),
_context(std::move(context)),
_mgr(_context->getManagerInstance()),
_currentGeneration(-1),
@@ -82,7 +82,7 @@ ConfigSubscriptionSet::acquireSnapshot(duration timeout, bool ignoreChange)
lastGeneration = generation;
now = steady_clock::now();
if (!inSync && (now < deadline)) {
- std::this_thread::sleep_until(std::min(now + _maxNapTime, deadline));
+ std::this_thread::sleep_for(std::min(_maxNapTime, deadline - now));
} else {
break;
}
@@ -116,12 +116,6 @@ ConfigSubscriptionSet::close()
}
}
-bool
-ConfigSubscriptionSet::isClosed() const
-{
- return (_state.load(std::memory_order_relaxed) == CLOSED);
-}
-
std::shared_ptr<ConfigSubscription>
ConfigSubscriptionSet::subscribe(const ConfigKey & key, duration timeout)
{
@@ -135,10 +129,4 @@ ConfigSubscriptionSet::subscribe(const ConfigKey & key, duration timeout)
return s;
}
-int64_t
-ConfigSubscriptionSet::getGeneration() const
-{
- return _currentGeneration;
-}
-
} // namespace config
diff --git a/config/src/vespa/config/subscription/configsubscriptionset.h b/config/src/vespa/config/subscription/configsubscriptionset.h
index 9cee3894aa9..4b6d970770d 100644
--- a/config/src/vespa/config/subscription/configsubscriptionset.h
+++ b/config/src/vespa/config/subscription/configsubscriptionset.h
@@ -38,7 +38,9 @@ public:
*
* @return generation number
*/
- int64_t getGeneration() const;
+ int64_t getGeneration() const noexcept {
+ return _currentGeneration;
+ }
/**
* Closes the set, which will interrupt acquireSnapshot and unsubscribe all
@@ -49,7 +51,9 @@ public:
/**
* Checks if this subscription set is closed.
*/
- bool isClosed() const;
+ bool isClosed() const noexcept {
+ return (_state.load(std::memory_order_relaxed) == CLOSED);
+ }
// Helpers for doing the subscription
std::shared_ptr<ConfigSubscription> subscribe(const ConfigKey & key, vespalib::duration timeout);