]> git.sesse.net Git - plocate/blobdiff - plocate.cpp
Merge non-results from worker threads to put less load on Serializer.
[plocate] / plocate.cpp
index e8fbff3012cccaac30baa2cf2d2b692dfa1d3b64..926bbf1977831562217829cc07e7aaddf56ca4f8 100644 (file)
@@ -432,7 +432,11 @@ public:
        void print(uint64_t seq, uint64_t skip, const string msg) override
        {
                lock_guard<mutex> 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: