diff options
author | Geir Storli <geirst@yahooinc.com> | 2022-03-16 17:11:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-16 17:11:45 +0100 |
commit | fd26131762bf938c033178637604df97076ffcdf (patch) | |
tree | 3e2fd72a7e612368ef065894e987ca55f8caac1a /searchlib | |
parent | 124c14075c61613533068fdee8bf5b293137bad3 (diff) | |
parent | 21470e3b8cd3e6b3a83730e41175719123dc6b10 (diff) |
Merge pull request #21707 from vespa-engine/toregge/add-acquire-multi-value-entry-ref-member-function-to-multi-value-mapping-base
Add acquire_entry_ref() member function to multi value mapping base.
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/attribute/multi_value_mapping.h | 2 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/attribute/multi_value_mapping_base.h | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/multi_value_mapping.h b/searchlib/src/vespa/searchlib/attribute/multi_value_mapping.h index 71f1191e507..382f5b02642 100644 --- a/searchlib/src/vespa/searchlib/attribute/multi_value_mapping.h +++ b/searchlib/src/vespa/searchlib/attribute/multi_value_mapping.h @@ -31,7 +31,7 @@ public: const vespalib::GrowStrategy &gs, std::shared_ptr<vespalib::alloc::MemoryAllocator> memory_allocator); ~MultiValueMapping() override; - ConstArrayRef get(uint32_t docId) const { return _store.get(_indices[docId].load_acquire()); } + ConstArrayRef get(uint32_t docId) const { return _store.get(acquire_entry_ref(docId)); } ConstArrayRef getDataForIdx(EntryRef idx) const { return _store.get(idx); } void set(uint32_t docId, ConstArrayRef values); diff --git a/searchlib/src/vespa/searchlib/attribute/multi_value_mapping_base.h b/searchlib/src/vespa/searchlib/attribute/multi_value_mapping_base.h index e4588c8e743..9e42e2763e5 100644 --- a/searchlib/src/vespa/searchlib/attribute/multi_value_mapping_base.h +++ b/searchlib/src/vespa/searchlib/attribute/multi_value_mapping_base.h @@ -39,6 +39,8 @@ protected: void updateValueCount(size_t oldValues, size_t newValues) { _totalValues += newValues - oldValues; } + + EntryRef acquire_entry_ref(uint32_t docId) const noexcept { return _indices.acquire_elem_ref(docId).load_acquire(); } public: using RefCopyVector = vespalib::Array<EntryRef>; |