From: Simon Marchi Date: Mon, 5 May 2025 20:15:26 +0000 (-0400) Subject: gdbsupport: make gdb::parallel_for_each's n parameter a template parameter X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e2f20b221ab6b7af24ab29b84d55b4772952c3ca;p=thirdparty%2Fbinutils-gdb.git gdbsupport: make gdb::parallel_for_each's n parameter a template parameter This value will likely never change at runtime, so we might as well make it a template parameter. This has the "advantage" of being able to remove the unnecessary param from gdb::sequential_for_each. Change-Id: Ia172ab8e08964e30d4e3378a95ccfa782abce674 Approved-By: Tom Tromey --- diff --git a/gdb/minsyms.c b/gdb/minsyms.c index 124d96d90b5..4a6459a6f2d 100644 --- a/gdb/minsyms.c +++ b/gdb/minsyms.c @@ -1479,7 +1479,7 @@ minimal_symbol_reader::install () msymbols = m_objfile->per_bfd->msymbols.get (); /* Arbitrarily require at least 10 elements in a thread. */ - gdb::parallel_for_each (10, &msymbols[0], &msymbols[mcount], + gdb::parallel_for_each<10> (&msymbols[0], &msymbols[mcount], [&] (minimal_symbol *start, minimal_symbol *end) { scoped_time_it time_it ("minsyms install worker"); diff --git a/gdb/unittests/parallel-for-selftests.c b/gdb/unittests/parallel-for-selftests.c index c9a1689acfb..f3d85a85704 100644 --- a/gdb/unittests/parallel-for-selftests.c +++ b/gdb/unittests/parallel-for-selftests.c @@ -94,9 +94,9 @@ test_parallel_for_each () const std::vector for_each_functions { [] (int start, int end, foreach_callback_t callback) - { gdb::parallel_for_each (1, start, end, callback); }, + { gdb::parallel_for_each<1> (start, end, callback); }, [] (int start, int end, foreach_callback_t callback) - { gdb::sequential_for_each (1, start, end, callback);} + { gdb::sequential_for_each (start, end, callback);} }; for (int n_threads : { 0, 1, 3 }) diff --git a/gdbsupport/parallel-for.h b/gdbsupport/parallel-for.h index c485c36d485..b74c8068cf2 100644 --- a/gdbsupport/parallel-for.h +++ b/gdbsupport/parallel-for.h @@ -40,10 +40,9 @@ namespace gdb at least N elements processed per thread. Setting N to 0 is not allowed. */ -template +template void -parallel_for_each (unsigned n, RandomIt first, RandomIt last, - RangeFunction callback) +parallel_for_each (RandomIt first, RandomIt last, RangeFunction callback) { /* If enabled, print debug info about how the work is distributed across the threads. */ @@ -73,7 +72,7 @@ parallel_for_each (unsigned n, RandomIt first, RandomIt last, if (parallel_for_each_debug) { debug_printf (_("Parallel for: n_elements: %zu\n"), n_elements); - debug_printf (_("Parallel for: minimum elements per thread: %u\n"), n); + debug_printf (_("Parallel for: minimum elements per thread: %zu\n"), n); debug_printf (_("Parallel for: elts_per_thread: %zu\n"), elts_per_thread); } @@ -141,8 +140,7 @@ parallel_for_each (unsigned n, RandomIt first, RandomIt last, template void -sequential_for_each (unsigned n, RandomIt first, RandomIt last, - RangeFunction callback) +sequential_for_each (RandomIt first, RandomIt last, RangeFunction callback) { callback (first, last); }