summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-02-03 11:03:41 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2021-02-03 11:03:41 +0000
commit4156bd79ede2698f74a6769d8d8900bbea173398 (patch)
tree360012373361d99ac8fd8c508785a8ee24eb427d /searchcore
parent0bed084b469e8aef409de0f4204013d5b1060948 (diff)
Count on the right places.
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.cpp15
1 files changed, 13 insertions, 2 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 a345cb9c927..acb81ef6976 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
@@ -44,9 +44,20 @@ CompactionJob::scanDocuments(const LidUsageStats &stats)
return false;
}
+namespace {
+ class IncOnDestruct {
+ public:
+ IncOnDestruct(std::atomic<size_t> & count) : _count(count) {}
+ ~IncOnDestruct() {
+ _count.fetch_add(1, std::memory_order_relaxed);
+ }
+ private:
+ std::atomic<size_t> & _count;
+ };
+}
void
CompactionJob::moveDocument(const search::DocumentMetaData & meta, std::shared_ptr<IDestructorCallback> context) {
- _executedCount.fetch_add(1, std::memory_order_relaxed);
+ IncOnDestruct countGuard(_executedCount);
if (_stopped.load(std::memory_order_relaxed)) return;
// The real lid must be sampled in the master thread.
//TODO remove target lid from createMoveOperation interface
@@ -101,7 +112,7 @@ void
CompactionJob::onStop() {
_stopped = true;
while ( ! inSync() ) {
- std::this_thread::sleep_for(10us);
+ std::this_thread::sleep_for(1ms);
}
}