51 using any_sender_t = experimental::execution::any_receiver_ref<
52 stdexec::completion_signatures<stdexec::set_value_t(), stdexec::set_error_t(std::exception_ptr)>,
57 stdexec::get_completion_scheduler<stdexec::set_value_t>.signature<
scheduler_t()
noexcept>,
61 const view_s_t data(Kokkos::view_alloc(
exec,
"data - shared space"));
67 static_assert(std::same_as<
68 stdexec::__completion_domain_of_t<stdexec::set_value_t,
decltype(chain)>,
71 static_assert(std::same_as<
72 stdexec::__completion_scheduler_of_t<stdexec::set_value_t,
decltype(chain)>,
76 auto continues_on = std::move(chain) | stdexec::continues_on(esc.
get_scheduler());
78 static_assert(std::same_as<
79 stdexec::__demangle_t<
decltype(continues_on)>,
81 stdexec::continues_on_t,
87 any_sender_t extended_chain = std::move(continues_on) |
THEN_INCREMENT(data);
89 ASSERT_EQ(data(), 0) <<
"Eager execution is not allowed.";
92 recorder_listener_t::record(
93 [extended_chain = std::move(extended_chain)]()
mutable { stdexec::sync_wait(std::move(extended_chain)); }),
100 ASSERT_EQ(data(), 3);
auto get_scheduler() const noexcept -> ExecutionSpaceImpl::Scheduler< Exec >
decltype(std::declval< const context_t >().get_scheduler()) scheduler_t
Kokkos::View< value_t, Kokkos::SharedSpace > view_s_t
Kokkos::Execution::ExecutionSpaceContext< Exec > context_t