Skip to content

Commit e88b0fe

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

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

include/exec/static_thread_pool.hpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -447,13 +447,14 @@ 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+
sh_state.partials_.swap(std::vector<inrange_t>{});
457+
stdexec::set_value((Receiver&&) sh_state.receiver_, std::move(result));
457458
};
458459

459460
sh_state.apply(reducer);

0 commit comments

Comments
 (0)