diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-03-21 19:51:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-21 19:51:45 +0100 |
commit | d8f9994a519bf15974b83bfb71cd2a56f878bb6c (patch) | |
tree | 4713e6af471ebf7cea97995a7f175c10d53a00d6 | |
parent | 4adf3b558c0293f0d715fdda8fc59eeba1469ca3 (diff) | |
parent | e66d228741b24ebd798df4708e72ea23bec27cb5 (diff) |
Merge pull request #17088 from vespa-engine/balder/countdown-should-happen-in-non-master-thread
Counting executed task should happen in bucket executor once task has…
-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)); |