// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "forcecommitdonetask.h" #include #include namespace proton { ForceCommitDoneTask::ForceCommitDoneTask(IDocumentMetaStore &documentMetaStore, std::unique_ptr pending_gid_to_lid_changes) : _lidsToReuse(), _holdUnblockShrinkLidSpace(false), _documentMetaStore(documentMetaStore), _pending_gid_to_lid_changes(std::move(pending_gid_to_lid_changes)) { } ForceCommitDoneTask::~ForceCommitDoneTask() = default; void ForceCommitDoneTask::reuseLids(std::vector &&lids) { assert(_lidsToReuse.empty()); _lidsToReuse = std::move(lids); } void ForceCommitDoneTask::run() { if (_pending_gid_to_lid_changes) { _pending_gid_to_lid_changes->notify_done(); } if (!_lidsToReuse.empty()) { _documentMetaStore.removes_complete(_lidsToReuse); } if (_holdUnblockShrinkLidSpace) { _documentMetaStore.holdUnblockShrinkLidSpace(); } } } // namespace proton