diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-08-30 08:53:14 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-08-30 08:53:14 +0000 |
commit | b268af77c44525562444494ed91df7e18a4a7a4f (patch) | |
tree | 6b8fd683d53841c0deacd1fb64248aee44d557d0 /searchlib | |
parent | 17ab354a5ce51b452dcce166de3fc19fc4d23b83 (diff) |
Handle when priorityQ goes from not full to full.
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/queryeval/nearest_neighbor_distance_heap.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/searchlib/src/vespa/searchlib/queryeval/nearest_neighbor_distance_heap.h b/searchlib/src/vespa/searchlib/queryeval/nearest_neighbor_distance_heap.h index 3db3b1e0ae8..821dc67fe64 100644 --- a/searchlib/src/vespa/searchlib/queryeval/nearest_neighbor_distance_heap.h +++ b/searchlib/src/vespa/searchlib/queryeval/nearest_neighbor_distance_heap.h @@ -38,7 +38,11 @@ public: } else if (distance < _priQ.front()) { _priQ.front() = distance; _priQ.adjust(); - _distance_threshold.store(_priQ.front(), std::memory_order_relaxed); + } + if (_priQ.size() >= _size) { + if (_distance_threshold.load(std::memory_order_relaxed) > _priQ.front()) { + _distance_threshold.store(_priQ.front(), std::memory_order_relaxed); + } } } }; |