From 2e2a88aa12e9d00555d06f249b91f5d98a96edf5 Mon Sep 17 00:00:00 2001 From: Tor Egge Date: Mon, 22 Nov 2021 11:08:39 +0100 Subject: Simplify MaintenanceController::killJobs() and remove dead code. --- .../vespa/searchcore/proton/server/maintenancecontroller.cpp | 10 +++++----- .../vespa/searchcore/proton/server/maintenancejobrunner.cpp | 7 ------- .../src/vespa/searchcore/proton/server/maintenancejobrunner.h | 1 - 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/searchcore/src/vespa/searchcore/proton/server/maintenancecontroller.cpp b/searchcore/src/vespa/searchcore/proton/server/maintenancecontroller.cpp index c4826bba8ea..6b606298026 100644 --- a/searchcore/src/vespa/searchcore/proton/server/maintenancecontroller.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/maintenancecontroller.cpp @@ -31,9 +31,9 @@ public: }; bool -isRunningOrRunnable(const MaintenanceJobRunner & job, const Executor * master) { +isRunnable(const MaintenanceJobRunner & job, const Executor * master) { return (&job.getExecutor() == master) - ? job.isRunning() + ? false : job.isRunnable(); } @@ -99,14 +99,14 @@ MaintenanceController::killJobs() job->stop(); // Make sure no more tasks are added to the executor } for (auto &job : _jobs) { - while (isRunningOrRunnable(*job, &_masterThread)) { + while (isRunnable(*job, &_masterThread)) { std::this_thread::sleep_for(1ms); } } - JobList tmpJobs = _jobs; + JobList tmpJobs; { Guard guard(_jobsLock); - _jobs.clear(); + tmpJobs.swap(_jobs); } // Hold jobs until existing tasks have been drained _masterThread.execute(makeLambdaTask([this, jobs=std::move(tmpJobs)]() { diff --git a/searchcore/src/vespa/searchcore/proton/server/maintenancejobrunner.cpp b/searchcore/src/vespa/searchcore/proton/server/maintenancejobrunner.cpp index 16d74479ebe..9eb0596ff1f 100644 --- a/searchcore/src/vespa/searchcore/proton/server/maintenancejobrunner.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/maintenancejobrunner.cpp @@ -76,13 +76,6 @@ MaintenanceJobRunner::MaintenanceJobRunner(Executor &executor, IMaintenanceJob:: _job->registerRunner(this); } -bool -MaintenanceJobRunner::isRunning() const -{ - Guard guard(_lock); - return _running; -} - bool MaintenanceJobRunner::isRunnable() const { diff --git a/searchcore/src/vespa/searchcore/proton/server/maintenancejobrunner.h b/searchcore/src/vespa/searchcore/proton/server/maintenancejobrunner.h index 151cc302cd3..17f244e6621 100644 --- a/searchcore/src/vespa/searchcore/proton/server/maintenancejobrunner.h +++ b/searchcore/src/vespa/searchcore/proton/server/maintenancejobrunner.h @@ -31,7 +31,6 @@ public: MaintenanceJobRunner(vespalib::Executor &executor, IMaintenanceJob::UP job); void run() override; void stop(); - bool isRunning() const; bool isRunnable() const; const vespalib::Executor & getExecutor() const { return _executor; } const IMaintenanceJob &getJob() const { return *_job; } -- cgit v1.2.3