38 lines
1.3 KiB
C++
38 lines
1.3 KiB
C++
#include <cstddef>
|
|
#include <cstdint>
|
|
|
|
#include <oneapi/tbb/parallel_invoke.h>
|
|
|
|
#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);
|
|
});
|
|
}
|