summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-08-30 08:53:14 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2021-08-30 08:53:14 +0000
commitb268af77c44525562444494ed91df7e18a4a7a4f (patch)
tree6b8fd683d53841c0deacd1fb64248aee44d557d0 /searchlib
parent17ab354a5ce51b452dcce166de3fc19fc4d23b83 (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.h6
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);
+ }
}
}
};