25#include "abi/string.hpp"
27#include "data_view.hpp"
34#if __cpp_concepts >= 201907L
43 ES_API(CPPESSENCE) abi::string serialize_thread_id();
49 ES_API(CPPESSENCE) std::uint64_t decimalize_thread_id_or_zero();
60 void parallel_for(std::size_t start, std::size_t end, std::size_t thread_count,
61 const std::function<
void(std::size_t index, std::size_t thread_index,
bool& exit)>& handler);
72#if __cpp_concepts >= 201907L
73 template <
typename T, std::invocable<T&, std::
size_t, std::
size_t,
bool&> Callable>
75 template <
typename T,
typename Callable>
77 void parallel_for(data_view<T> view, std::size_t thread_count, Callable&& handler) {
78 parallel_for(0, view.size(), thread_count, [&](std::size_t index, std::size_t thread_index,
bool& exit) {
79 std::forward<Callable>(handler)(view[index], index, thread_index, exit);