]> git.sesse.net Git - plocate/commitdiff
Give the WorkerThread results a proper struct instead of std::tuple.
authorSteinar H. Gunderson <steinar+git@gunderson.no>
Thu, 15 Oct 2020 21:40:42 +0000 (23:40 +0200)
committerSteinar H. Gunderson <steinar+git@gunderson.no>
Thu, 15 Oct 2020 21:40:42 +0000 (23:40 +0200)
plocate.cpp

index e31345852341f2a7218a435b873ec88303888a72..e8fbff3012cccaac30baa2cf2d2b692dfa1d3b64 100644 (file)
@@ -417,7 +417,12 @@ struct WorkerThread {
        // since a lock on it becomes a huge choke point if there are
        // lots of threads.
        mutex result_mu;
-       vector<tuple<uint64_t, uint64_t, string>> results;
+       struct Result {
+               uint64_t seq;
+               uint64_t skip;
+               string msg;
+       };
+       vector<Result> results;
 };
 
 class WorkerThreadReceiver : public ResultReceiver {
@@ -427,7 +432,7 @@ public:
        void print(uint64_t seq, uint64_t skip, const string msg) override
        {
                lock_guard<mutex> lock(wt->result_mu);
-               wt->results.emplace_back(seq, skip, move(msg));
+               wt->results.emplace_back(WorkerThread::Result{ seq, skip, move(msg) });
        }
 
 private:
@@ -436,13 +441,13 @@ private:
 
 void deliver_results(WorkerThread *wt, Serializer *serializer)
 {
-       vector<tuple<uint64_t, uint64_t, string>> results;
+       vector<WorkerThread::Result> results;
        {
                lock_guard<mutex> lock(wt->result_mu);
                results = move(wt->results);
        }
-       for (const auto &result : results) {
-               serializer->print(get<0>(result), get<1>(result), move(get<2>(result)));
+       for (const WorkerThread::Result &result : results) {
+               serializer->print(result.seq, result.skip, move(result.msg));
        }
 }