aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@yahooinc.com>2022-03-28 16:02:41 +0200
committerTor Egge <Tor.Egge@yahooinc.com>2022-03-28 16:02:41 +0200
commit19f0ea267927337094b74f1735d4751ae2118bf2 (patch)
treebb07c9da666eeb48bd2c47be560f5bc70e0e2eae /searchlib
parentcef4316c3f87edd7ca747d3edb9b7b6f86dc31c9 (diff)
Trim down rcuvector interface.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multi_value_mapping_base.cpp3
-rw-r--r--searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp3
-rw-r--r--searchlib/src/vespa/searchlib/attribute/singleenumattribute.cpp3
-rw-r--r--searchlib/src/vespa/searchlib/tensor/hnsw_graph.h2
-rw-r--r--searchlib/src/vespa/searchlib/tensor/tensor_attribute.cpp3
5 files changed, 9 insertions, 5 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/multi_value_mapping_base.cpp b/searchlib/src/vespa/searchlib/attribute/multi_value_mapping_base.cpp
index 11ea58bc124..eebef46284b 100644
--- a/searchlib/src/vespa/searchlib/attribute/multi_value_mapping_base.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/multi_value_mapping_base.cpp
@@ -25,10 +25,11 @@ MultiValueMappingBase::~MultiValueMappingBase() = default;
MultiValueMappingBase::RefCopyVector
MultiValueMappingBase::getRefCopy(uint32_t size) const {
assert(size <= _indices.size());
+ auto* indices = &_indices.get_elem_ref(0); // Called from writer only
RefCopyVector result;
result.reserve(size);
for (uint32_t lid = 0; lid < size; ++lid) {
- result.push_back(_indices[lid].load_relaxed());
+ result.push_back(indices[lid].load_relaxed());
}
return result;
}
diff --git a/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp b/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp
index a9743990626..2d8d4c4858b 100644
--- a/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/reference_attribute.cpp
@@ -337,10 +337,11 @@ ReferenceAttribute::IndicesCopyVector
ReferenceAttribute::getIndicesCopy(uint32_t size) const
{
assert(size <= _indices.size());
+ auto* indices = &_indices.get_elem_ref(0); // Called from writer only
IndicesCopyVector result;
result.reserve(size);
for (uint32_t i = 0; i < size; ++i) {
- result.push_back(_indices[i].load_relaxed());
+ result.push_back(indices[i].load_relaxed());
}
return result;
}
diff --git a/searchlib/src/vespa/searchlib/attribute/singleenumattribute.cpp b/searchlib/src/vespa/searchlib/attribute/singleenumattribute.cpp
index b5de652fbe2..b671a23bbe7 100644
--- a/searchlib/src/vespa/searchlib/attribute/singleenumattribute.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/singleenumattribute.cpp
@@ -41,10 +41,11 @@ SingleValueEnumAttributeBase::EnumIndexCopyVector
SingleValueEnumAttributeBase::getIndicesCopy(uint32_t size) const
{
assert(size <= _enumIndices.size());
+ auto* enum_indices = &_enumIndices.get_elem_ref(0); // Called from writer only
EnumIndexCopyVector result;
result.reserve(size);
for (uint32_t lid = 0; lid < size; ++lid) {
- result.push_back(_enumIndices[lid].load_relaxed());
+ result.push_back(enum_indices[lid].load_relaxed());
}
return result;
}
diff --git a/searchlib/src/vespa/searchlib/tensor/hnsw_graph.h b/searchlib/src/vespa/searchlib/tensor/hnsw_graph.h
index 726abb8141d..06482c075cb 100644
--- a/searchlib/src/vespa/searchlib/tensor/hnsw_graph.h
+++ b/searchlib/src/vespa/searchlib/tensor/hnsw_graph.h
@@ -56,7 +56,7 @@ struct HnswGraph {
void trim_node_refs_size();
NodeRef get_node_ref(uint32_t docid) const {
- return node_refs[docid].load_relaxed();
+ return node_refs.get_elem_ref(docid).load_relaxed(); // Called from writer only
}
NodeRef acquire_node_ref(uint32_t docid) const {
diff --git a/searchlib/src/vespa/searchlib/tensor/tensor_attribute.cpp b/searchlib/src/vespa/searchlib/tensor/tensor_attribute.cpp
index 112396fd3fb..89f54eacc09 100644
--- a/searchlib/src/vespa/searchlib/tensor/tensor_attribute.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/tensor_attribute.cpp
@@ -269,10 +269,11 @@ TensorAttribute::getRefCopy() const
{
uint32_t size = getCommittedDocIdLimit();
assert(size <= _refVector.size());
+ auto* ref_vector = &_refVector.get_elem_ref(0); // Called from writer only
RefCopyVector result;
result.reserve(size);
for (uint32_t i = 0; i < size; ++i) {
- result.push_back(_refVector[i].load_relaxed());
+ result.push_back(ref_vector[i].load_relaxed());
}
return result;
}