diff options
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
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 69bd743021a..042cd70f7e0 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 @@ -45,8 +45,8 @@ isSameDocument(const search::DocumentMetaData & a, const search::DocumentMetaDat void CompactionJob::failOperation() { - _executedCount.fetch_add(1, std::memory_order_relaxed); - _scanItr.reset(); + IncOnDestruct countGuard(_executedCount); + _master.execute(makeLambdaTask([this] { _scanItr.reset(); })); } bool @@ -62,7 +62,7 @@ CompactionJob::scanDocuments(const LidUsageStats &stats) assert(bucket.getBucketId() == meta.bucketId); using DoneContext = vespalib::KeepAlive<std::pair<IDestructorCallback::SP, IDestructorCallback::SP>>; moveDocument(meta, std::make_shared<DoneContext>(std::make_pair(std::move(opsTracker), std::move(onDone)))); - }, [this](const Bucket &) { _master.execute(makeLambdaTask([this] { failOperation(); } )); }); + }, [this](const Bucket &) { failOperation(); }); _startedCount.fetch_add(1, std::memory_order_relaxed); _bucketExecutor.execute(metaBucket, std::move(bucketTask)); |