aboutsummaryrefslogtreecommitdiffstats
path: root/searchcore/src/vespa/searchcore/proton/server/maintenancecontroller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'searchcore/src/vespa/searchcore/proton/server/maintenancecontroller.cpp')
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/maintenancecontroller.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/server/maintenancecontroller.cpp b/searchcore/src/vespa/searchcore/proton/server/maintenancecontroller.cpp
index c71e9d832f3..b60c6c6e79c 100644
--- a/searchcore/src/vespa/searchcore/proton/server/maintenancecontroller.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/maintenancecontroller.cpp
@@ -31,7 +31,7 @@ public:
}
MaintenanceController::MaintenanceController(IThreadService &masterThread,
- vespalib::SyncableThreadExecutor & defaultExecutor,
+ vespalib::Executor & defaultExecutor,
const DocTypeName &docTypeName)
: IBucketFreezeListener(),
_masterThread(masterThread),
@@ -93,8 +93,11 @@ MaintenanceController::killJobs()
for (auto &job : _jobs) {
job->stop(); // Make sure no more tasks are added to the executor
}
- _defaultExecutor.sync();
- _defaultExecutor.sync();
+ for (auto &job : _jobs) {
+ while (job->isRunning()) {
+ std::this_thread::sleep_for(1ms);
+ }
+ }
JobList tmpJobs = _jobs;
{
Guard guard(_jobsLock);