});
}
+/* A sequential drop-in replacement of parallel_for_each. This can be useful
+ when debugging multi-threading behaviour, and you want to limit
+ multi-threading in a fine-grained way. */
+
+template<class RandomIt, class RangeFunction>
+typename gdb::detail::par_for_accumulator<
+ typename std::result_of<RangeFunction (RandomIt, RandomIt)>::type
+ >::result_type
+sequential_for_each (unsigned n, RandomIt first, RandomIt last,
+ RangeFunction callback)
+{
+ using result_type
+ = typename std::result_of<RangeFunction (RandomIt, RandomIt)>::type;
+
+ gdb::detail::par_for_accumulator<result_type> results (0);
+
+ /* Process all the remaining elements in the main thread. */
+ return results.finish ([=] ()
+ {
+ return callback (first, last);
+ });
+}
+
}
#endif /* GDBSUPPORT_PARALLEL_FOR_H */