summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-03-21 19:51:45 +0100
committerGitHub <noreply@github.com>2021-03-21 19:51:45 +0100
commitd8f9994a519bf15974b83bfb71cd2a56f878bb6c (patch)
tree4713e6af471ebf7cea97995a7f175c10d53a00d6
parent4adf3b558c0293f0d715fdda8fc59eeba1469ca3 (diff)
parente66d228741b24ebd798df4708e72ea23bec27cb5 (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.cpp6
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));