summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-01-27 17:16:35 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2021-01-27 17:16:35 +0000
commitf2be18a5f7e3d4954ec0fbf982981766f374a3c3 (patch)
tree69ad582d7d61371efed05995aa34dc0f4ef08405
parent46f9bb123d4e3e858030a886298e247da35456ad (diff)
Add a proper way for controlled stop.
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/i_maintenance_job.h1
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.cpp5
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.h1
3 files changed, 6 insertions, 1 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/server/i_maintenance_job.h b/searchcore/src/vespa/searchcore/proton/server/i_maintenance_job.h
index df6889ecf04..34e882c1f01 100644
--- a/searchcore/src/vespa/searchcore/proton/server/i_maintenance_job.h
+++ b/searchcore/src/vespa/searchcore/proton/server/i_maintenance_job.h
@@ -38,6 +38,7 @@ public:
virtual vespalib::duration getInterval() const { return _interval; }
virtual bool isBlocked() const { return false; }
virtual IBlockableMaintenanceJob *asBlockable() { return nullptr; }
+ virtual void onStop() {}
/**
* Register maintenance job runner, in case event passed to the
diff --git a/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.cpp b/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.cpp
index f5441f86835..58ecca9f8ce 100644
--- a/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.cpp
@@ -83,7 +83,10 @@ CompactionJob::CompactionJob(const DocumentDBLidSpaceCompactionConfig &config,
{
}
-CompactionJob::~CompactionJob() {
+CompactionJob::~CompactionJob() = default;
+
+void
+CompactionJob::onStop() {
_bucketExecutor.sync();
}
diff --git a/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.h b/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.h
index 3a61ee85a87..6c11961e137 100644
--- a/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.h
+++ b/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.h
@@ -30,6 +30,7 @@ private:
bool scanDocuments(const search::LidUsageStats &stats) override;
void moveDocument(const search::DocumentMetaData & meta, std::shared_ptr<IDestructorCallback> onDone);
+ void onStop() override;
public:
CompactionJob(const DocumentDBLidSpaceCompactionConfig &config,