aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorTor Egge <tegge@oath.com>2019-01-04 22:45:53 +0000
committerTor Egge <tegge@oath.com>2019-01-04 22:45:53 +0000
commita65854f318e3527c6b9acb6c24dc9416f3a53365 (patch)
treeb33cb150667579ff8c6c5a5b12d6914007319bd5 /config
parenta51bf4432797d9db5131a27b0b1136d0541f8587 (diff)
Change ConfigHolder::wait() to immediately return success if a config
is already held.
Diffstat (limited to 'config')
-rw-r--r--config/src/tests/configholder/configholder.cpp3
-rw-r--r--config/src/vespa/config/common/configholder.cpp2
2 files changed, 2 insertions, 3 deletions
diff --git a/config/src/tests/configholder/configholder.cpp b/config/src/tests/configholder/configholder.cpp
index 2c6fa2016bf..af66b12dc48 100644
--- a/config/src/tests/configholder/configholder.cpp
+++ b/config/src/tests/configholder/configholder.cpp
@@ -33,8 +33,7 @@ TEST("Require that waiting is done")
timer.SetNow();
holder.handle(ConfigUpdate::UP(new ConfigUpdate(value, true, 0)));
- holder.wait(100);
- ASSERT_TRUE(timer.MilliSecsToNow() >= 100);
+ ASSERT_TRUE(holder.wait(100));
}
TEST("Require that polling for elements work")
diff --git a/config/src/vespa/config/common/configholder.cpp b/config/src/vespa/config/common/configholder.cpp
index e2e6ae87688..c1b3c885c54 100644
--- a/config/src/vespa/config/common/configholder.cpp
+++ b/config/src/vespa/config/common/configholder.cpp
@@ -34,7 +34,7 @@ bool
ConfigHolder::wait(uint64_t timeoutInMillis)
{
vespalib::MonitorGuard guard(_monitor);
- return guard.wait(timeoutInMillis);
+ return static_cast<bool>(_current) || guard.wait(timeoutInMillis);
}
bool