diff options
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp | 5 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp index 170b6f99930..f34885974b8 100644 --- a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp @@ -455,7 +455,7 @@ StoreOnlyFeedView::internalUpdate(FeedToken token, const UpdateOperation &updOp) promisedDoc = std::move(promisedDoc), promisedStream = std::move(promisedStream), this]() mutable { - makeUpdatedDocument(useDocStore, lid, *upd, onWriteDone, + makeUpdatedDocument(useDocStore, lid, *upd, std::move(onWriteDone), std::move(promisedDoc), std::move(promisedStream)); }); _writeService.shared().execute(CpuUsage::wrap(std::move(task), CpuUsage::Category::WRITE)); @@ -465,7 +465,7 @@ StoreOnlyFeedView::internalUpdate(FeedToken token, const UpdateOperation &updOp) void StoreOnlyFeedView::makeUpdatedDocument(bool useDocStore, Lid lid, const DocumentUpdate & update, - OnOperationDoneType onWriteDone, PromisedDoc promisedDoc, + std::decay_t<OnOperationDoneType> onWriteDone, PromisedDoc promisedDoc, PromisedStream promisedStream) { Document::UP prevDoc = _summaryAdapter->get(lid, *_repo); @@ -494,6 +494,7 @@ StoreOnlyFeedView::makeUpdatedDocument(bool useDocStore, Lid lid, const Document assert(onWriteDone->is_replay() && !useDocStore); } } + onWriteDone.reset(); promisedDoc.set_value(std::move(newDoc)); promisedStream.set_value(std::move(newStream)); } diff --git a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h index bd8509fa796..e36946c214d 100644 --- a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h +++ b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.h @@ -184,7 +184,7 @@ private: IPendingLidTracker::Token get_pending_lid_token(const DocumentOperation &op); - void makeUpdatedDocument(bool useDocStore, Lid lid, const DocumentUpdate & update, OnOperationDoneType onWriteDone, + void makeUpdatedDocument(bool useDocStore, Lid lid, const DocumentUpdate & update, std::decay_t<OnOperationDoneType> onWriteDone, PromisedDoc promisedDoc, PromisedStream promisedStream); protected: |