Skip to content

Commit 9ff2540

Browse files
committed
Move more common code into process_queue()
1 parent 45c2207 commit 9ff2540

File tree

1 file changed

+18
-34
lines changed

1 file changed

+18
-34
lines changed

src/osmdata.cpp

Lines changed: 18 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -247,8 +247,15 @@ struct pending_threaded_processor : public pending_processor
247247
void enqueue_relation(osmid_t id) override { m_queue.emplace(id); }
248248

249249
template <typename FUNCTION>
250-
void process_queue(FUNCTION &&function)
250+
void process_queue(char const *type, FUNCTION &&function)
251251
{
252+
auto const ids_queued = m_queue.size();
253+
254+
fmt::print(stderr, "\nGoing over pending {}s...\n", type);
255+
fmt::print(stderr, "\t{} {}s are pending\n", ids_queued, type);
256+
fmt::print(stderr, "\nUsing {} helper-processes\n", m_clones.size());
257+
258+
util::timer_t timer;
252259
std::vector<std::future<void>> workers;
253260

254261
for (auto const &clone : m_clones) {
@@ -278,48 +285,25 @@ struct pending_threaded_processor : public pending_processor
278285
clone_output->commit();
279286
}
280287
}
281-
}
282288

283-
void process_ways() override
284-
{
285-
auto const ids_queued = m_queue.size();
286-
287-
fmt::print(stderr, "\nGoing over pending ways...\n");
288-
fmt::print(stderr, "\t{} ways are pending\n", ids_queued);
289-
fmt::print(stderr, "\nUsing {} helper-processes\n", m_clones.size());
290-
291-
util::timer_t timer;
292-
process_queue(do_ways);
293289
timer.stop();
294290

295-
fmt::print(stderr, "\rFinished processing {} ways in {} s\n\n",
296-
ids_queued, timer.elapsed());
291+
fmt::print(stderr, "\rFinished processing {} {}s in {} s\n\n",
292+
ids_queued, type, timer.elapsed());
293+
297294
if (timer.elapsed() > 0) {
298-
fmt::print(
299-
stderr, "{} Pending ways took {}s at a rate of {:.2f}/s\n",
300-
ids_queued, timer.elapsed(), timer.per_second(ids_queued));
295+
fmt::print(stderr,
296+
"{} pending {}s took {}s at a rate of {:.2f}/s\n",
297+
ids_queued, type, timer.elapsed(),
298+
timer.per_second(ids_queued));
301299
}
302300
}
303301

302+
void process_ways() override { process_queue("way", do_ways); }
303+
304304
void process_relations() override
305305
{
306-
auto const ids_queued = m_queue.size();
307-
308-
fmt::print(stderr, "\nGoing over pending relations...\n");
309-
fmt::print(stderr, "\t{} relations are pending\n", ids_queued);
310-
fmt::print(stderr, "\nUsing {} helper-processes\n", m_clones.size());
311-
312-
util::timer_t timer;
313-
process_queue(do_rels);
314-
timer.stop();
315-
316-
fmt::print(stderr, "\rFinished processing {} relations in {} s\n\n",
317-
ids_queued, timer.elapsed());
318-
if (timer.elapsed() > 0) {
319-
fmt::print(
320-
stderr, "{} Pending relations took {}s at a rate of {:.2f}/s\n",
321-
ids_queued, timer.elapsed(), timer.per_second(ids_queued));
322-
}
306+
process_queue("relation", do_rels);
323307

324308
//collect all expiry tree informations together into one
325309
for (auto const &clone : m_clones) {

0 commit comments

Comments
 (0)