34 Kokkos::RangePolicy<TEST_EXECUTION_SPACE>
51 Kokkos::RangePolicy<TEST_EXECUTION_SPACE>(0,
size)} {
55 static constexpr size_t size = 10;
78 sizeof(completion_signal_schedule_wait_event_t)
89 sizeof(completion_signal_order_on_exec_t)
100 sizeof(completion_signal_depend_on_event_t)
109 auto op_state = stdexec::connect(
110 stdexec::schedule(
esc.get_scheduler())
114 static_assert(std::same_as<
115 typename decltype(op_state)::completion_signal_policy_t,
121 recorder_listener_t::record([&]() { op_state.start(); }),
127template <Kokkos::ExecutionSpace Exec,
bool SubmittedOrderOn,
bool SubmittedDependOn>
130 SubmittedOrderOn || SubmittedDependOn,
132 stdexec::receiver_tag
142 template <
typename Error>
154 if (dep.has_value()) {
163 stdexec::prop{stdexec::get_delegation_scheduler,
loop->get_scheduler()},
state->exec);
170 GTEST_SKIP() <<
"The execution space does not have non-blocking dispatch.";
173 const auto [exec_A, exec_B] = Kokkos::Experimental::partition_space(
exec, 1, 1);
174 const context_t esc_A{exec_A}, esc_B{exec_B};
176 stdexec::run_loop loop;
178 auto op_state = stdexec::connect(
183 const auto recorded_events_before_run = recorder_listener_t::record([&]() { op_state.start(); });
187 const auto recorded_events_after_run = recorder_listener_t::record([&]() { loop.run(); });
190 recorded_events_after_run, testing::ElementsAre(
MATCHER_FOR_WAIT_EVENT(recorded_events_before_run.at(0))));
198 std::optional<std::tuple<>> result;
200 auto op_state = stdexec::connect(
201 stdexec::schedule(
esc.get_scheduler())
204 .state = std::addressof(esc.m_state),
205 .runloop_state = std::addressof(runloop_state),
206 .result = std::addressof(result)});
208 static_assert(std::same_as<
209 typename decltype(op_state)::completion_signal_policy_t,
215 recorder_listener_t::record([&]() { op_state.start(); }),
220 runloop_state.loop.run();
225 const auto [exec_A, exec_B] = Kokkos::Experimental::partition_space(
exec, 1, 1);
226 const context_t esc_A{exec_A}, esc_B{exec_B};
228 stdexec::run_loop loop;
230 auto op_state = stdexec::connect(
236 static_assert(std::same_as<
237 typename decltype(op_state)::completion_signal_policy_t,
242 const auto recorded_events = recorder_listener_t::record([&]() { op_state.start(); });
245 ASSERT_THAT(recorded_events, testing::IsEmpty());
auto get_scheduler() const noexcept -> ExecutionSpaceImpl::Scheduler< Exec >
Kokkos::View< value_t, Kokkos::SharedSpace > view_s_t
Kokkos::Execution::ExecutionSpaceContext< Exec > context_t