summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorGeir Storli <geirst@verizonmedia.com>2021-01-07 12:46:45 +0100
committerGitHub <noreply@github.com>2021-01-07 12:46:45 +0100
commit09728ba19e31999d5c1ab3d708882456e06d8d6f (patch)
tree36fe7858e742f1c7694c35ac2f01d49319b52dd6 /searchlib
parent5c1096afe9f2db748f6e8d3c559021101fd8ae6c (diff)
parent3f82507f55cd98baeca7e2d098b46a75166549b8 (diff)
Merge pull request #15937 from vespa-engine/toregge/stop-fusion-when-closing-flush-engine
Stop fusion when closing flush engine.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/diskindex/fusion/fusion_test.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/util/postingpriorityqueue.h2
2 files changed, 4 insertions, 4 deletions
diff --git a/searchlib/src/tests/diskindex/fusion/fusion_test.cpp b/searchlib/src/tests/diskindex/fusion/fusion_test.cpp
index efc9e99bf88..4c62140b731 100644
--- a/searchlib/src/tests/diskindex/fusion/fusion_test.cpp
+++ b/searchlib/src/tests/diskindex/fusion/fusion_test.cpp
@@ -602,15 +602,15 @@ TEST_F(FusionTest, require_that_fusion_can_be_stopped)
auto flush_token = std::make_shared<MyFlushToken>(10000);
make_simple_index("stopdump2", MockFieldLengthInspector());
ASSERT_TRUE(try_merge_simple_indexes("stopdump3", {"stopdump2"}, flush_token));
- EXPECT_EQ(40, flush_token->get_checks());
+ EXPECT_EQ(48, flush_token->get_checks());
vespalib::rmdir("stopdump3", true);
flush_token = std::make_shared<MyFlushToken>(1);
ASSERT_FALSE(try_merge_simple_indexes("stopdump3", {"stopdump2"}, flush_token));
EXPECT_EQ(12, flush_token->get_checks());
vespalib::rmdir("stopdump3", true);
- flush_token = std::make_shared<MyFlushToken>(39);
+ flush_token = std::make_shared<MyFlushToken>(47);
ASSERT_FALSE(try_merge_simple_indexes("stopdump3", {"stopdump2"}, flush_token));
- EXPECT_EQ(41, flush_token->get_checks());
+ EXPECT_EQ(49, flush_token->get_checks());
clean_stopped_fusion_testdirs();
}
diff --git a/searchlib/src/vespa/searchlib/util/postingpriorityqueue.h b/searchlib/src/vespa/searchlib/util/postingpriorityqueue.h
index baf38035210..008e9055e57 100644
--- a/searchlib/src/vespa/searchlib/util/postingpriorityqueue.h
+++ b/searchlib/src/vespa/searchlib/util/postingpriorityqueue.h
@@ -221,7 +221,7 @@ PostingPriorityQueue<IN>::merge(OUT &out, uint32_t heapLimit, const IFlushToken&
(this->*mergeHeapFunc)(out, flush_token);
return;
}
- for (;;) {
+ while (!flush_token.stop_requested()) {
if (_vec.size() == 1) {
void (*mergeOneFunc)(OUT &out, IN &in, const IFlushToken& flush_token) =
&PostingPriorityQueue<IN>::mergeOne;