summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@broadpark.no>2017-05-16 11:08:22 +0200
committerGitHub <noreply@github.com>2017-05-16 11:08:22 +0200
commit861bbee0b53217879b3c282f8f986f55277781fa (patch)
tree445356791c4eccb938fdeacb591c675f2c8888aa /searchcore
parent88332f46a65fd205e5deac7ec4b92975f21b6e8d (diff)
Explain need for serializing late part of attribute manager initialization
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/vespa/searchcore/proton/attribute/attribute_manager_initializer.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/attribute/attribute_manager_initializer.cpp b/searchcore/src/vespa/searchcore/proton/attribute/attribute_manager_initializer.cpp
index 8fe8a36ec94..e9fdd8638c9 100644
--- a/searchcore/src/vespa/searchcore/proton/attribute/attribute_manager_initializer.cpp
+++ b/searchcore/src/vespa/searchcore/proton/attribute/attribute_manager_initializer.cpp
@@ -173,6 +173,10 @@ AttributeManagerInitializer::run()
{
std::promise<bool> promise;
std::future<bool> future = promise.get_future();
+ /*
+ * Attribute manager and some its members (e.g. _attributeFieldWriter) assumes that work is performed
+ * by document db master thread and lacks locking to handle calls from multiple threads.
+ */
_master.execute(std::make_unique<AttributeManagerInitializerTask>(std::move(promise),
_configSerialNum,
_documentMetaStore,