summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-08-03 10:56:12 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2017-08-03 10:56:12 +0200
commita608dcf3ec3b31b3a0ffbc6190987a0fff293762 (patch)
treea06fec0a4301189bc3c91a28c343c4b95f2c8048
parentf12e2228b9c742a9f8cbf35be27074a229b99766 (diff)
Reorder wait and produce to colocate produce/consume.
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp
index 10cb515af71..804717a8bb9 100644
--- a/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/storeonlyfeedview.cpp
@@ -315,6 +315,7 @@ StoreOnlyFeedView::handleUpdate(FeedToken *token, const UpdateOperation &updOp)
}
void StoreOnlyFeedView::putSummary(SerialNum serialNum, search::DocumentIdT lid, FutureDoc futureDoc) {
+ _pendingLidTracker.produce(lid);
summaryExecutor().execute(
makeLambdaTask([serialNum, futureDoc, lid, this] {
const Document::UP & doc = futureDoc.get();
@@ -389,13 +390,13 @@ StoreOnlyFeedView::internalUpdate(FeedToken::UP token, const UpdateOperation &up
updateIndexedFields(serialNum, lid, futureDoc, immediateCommit, onWriteDone);
}
+ _pendingLidTracker.waitForConsumedLid(lid);
+
if (useDocumentStore(serialNum)) {
putSummary(serialNum, lid, futureDoc);
}
- _pendingLidTracker.waitForConsumedLid(lid);
Document::UP prevDoc(_summaryAdapter->get(lid, *_repo));
- _pendingLidTracker.produce(lid);
_writeService
.attributeFieldWriter()
.execute(serialNum,