From 36b3de205b731a061e84a54c5318039b3a3d31cb Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Thu, 15 Oct 2020 23:41:16 +0200 Subject: [PATCH] Merge non-results from worker threads to put less load on Serializer. --- plocate.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plocate.cpp b/plocate.cpp index e8fbff3..926bbf1 100644 --- a/plocate.cpp +++ b/plocate.cpp @@ -432,7 +432,11 @@ public: void print(uint64_t seq, uint64_t skip, const string msg) override { lock_guard lock(wt->result_mu); - wt->results.emplace_back(WorkerThread::Result{ seq, skip, move(msg) }); + if (msg.empty() && !wt->results.empty() && wt->results.back().seq + wt->results.back().skip == seq) { + wt->results.back().skip += skip; + } else { + wt->results.emplace_back(WorkerThread::Result{ seq, skip, move(msg) }); + } } private: -- 2.39.2