#include #include #include #include "blake3_impl.h" static_assert(TBB_USE_EXCEPTIONS == 0, "This file should be compiled with C++ exceptions disabled."); extern "C" void blake3_compress_subtree_wide_join_tbb( // shared params const uint32_t key[8], uint8_t flags, bool use_tbb, // left-hand side params const uint8_t *l_input, size_t l_input_len, uint64_t l_chunk_counter, uint8_t *l_cvs, size_t *l_n, // right-hand side params const uint8_t *r_input, size_t r_input_len, uint64_t r_chunk_counter, uint8_t *r_cvs, size_t *r_n) noexcept { if (!use_tbb) { *l_n = blake3_compress_subtree_wide(l_input, l_input_len, key, l_chunk_counter, flags, l_cvs, use_tbb); *r_n = blake3_compress_subtree_wide(r_input, r_input_len, key, r_chunk_counter, flags, r_cvs, use_tbb); return; } oneapi::tbb::parallel_invoke( [=]() { *l_n = blake3_compress_subtree_wide( l_input, l_input_len, key, l_chunk_counter, flags, l_cvs, use_tbb); }, [=]() { *r_n = blake3_compress_subtree_wide( r_input, r_input_len, key, r_chunk_counter, flags, r_cvs, use_tbb); }); }