diff options
Diffstat (limited to 'searchcore/src/vespa/searchcore/proton/attribute/attributemanager.cpp')
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/attribute/attributemanager.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.cpp b/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.cpp index 4b6e67212e1..032be9e1dc8 100644 --- a/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.cpp +++ b/searchcore/src/vespa/searchcore/proton/attribute/attributemanager.cpp @@ -575,6 +575,21 @@ AttributeManager::asyncForEachAttribute(std::shared_ptr<IConstAttributeFunctor> { for (const auto &attr : _attributes) { if (attr.second.isExtra()) { + // We must skip extra attributes as they must be handled in other threads. (DocumentMetaStore) + continue; + } + AttributeVector::SP attrsp = attr.second.getAttribute(); + _attributeFieldWriter.execute(_attributeFieldWriter.getExecutorIdFromName(attrsp->getNamePrefix()), + [attrsp, func]() { (*func)(*attrsp); }); + } +} + +void +AttributeManager::asyncForEachAttribute(std::shared_ptr<IAttributeFunctor> func) const +{ + for (const auto &attr : _attributes) { + if (attr.second.isExtra()) { + // We must skip extra attributes as they must be handled in other threads.(DocumentMetaStore) continue; } AttributeVector::SP attrsp = attr.second.getAttribute(); |