Skip to content

Commit 1bfc8c3

Browse files
committed
deallocate exec::reduce partials after computation complete
1 parent 2e860a2 commit 1bfc8c3

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

include/exec/static_thread_pool.hpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -447,13 +447,15 @@ namespace exec {
447447
};
448448

449449
auto finalize = [&](auto&) {
450-
stdexec::set_value(
451-
(Receiver&&) sh_state.receiver_,
452-
std::reduce(
453-
std::ranges::begin(sh_state.partials_),
454-
std::ranges::end(sh_state.partials_),
455-
sh_state.init_,
456-
sh_state.redop_));
450+
auto result = std::reduce(
451+
std::ranges::begin(sh_state.partials_),
452+
std::ranges::end(sh_state.partials_),
453+
sh_state.init_,
454+
sh_state.redop_);
455+
// deallocate
456+
std::vector<reduction_result_t> tmp;
457+
sh_state.partials_.swap(tmp);
458+
stdexec::set_value((Receiver&&) sh_state.receiver_, std::move(result));
457459
};
458460

459461
sh_state.apply(reducer);

0 commit comments

Comments
 (0)