diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-02-03 11:03:41 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-02-03 11:03:41 +0000 |
commit | 4156bd79ede2698f74a6769d8d8900bbea173398 (patch) | |
tree | 360012373361d99ac8fd8c508785a8ee24eb427d /searchcore | |
parent | 0bed084b469e8aef409de0f4204013d5b1060948 (diff) |
Count on the right places.
Diffstat (limited to 'searchcore')
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.cpp | 15 |
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); } } |