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_passthrough_event_t)
100 sizeof(completion_signal_defer_wait_event_t)
109 auto op_state = stdexec::connect(
110 stdexec::schedule(
esc.get_scheduler())
118 recorder_listener_t::record([&]() { op_state.start(); }),
124template <Kokkos::ExecutionSpace Exec,
bool IsDeferredCompletionReceiver>
127 IsDeferredCompletionReceiver,
129 stdexec::receiver_tag
139 template <
typename Error>
150 requires(IsDeferredCompletionReceiver)
159 stdexec::prop{stdexec::get_delegation_scheduler,
loop->get_scheduler()},
state->exec);
166 GTEST_SKIP() <<
"The execution space does not have non-blocking dispatch.";
169 const auto [exec_A, exec_B] = Kokkos::Experimental::partition_space(
exec, 1, 1);
170 const context_t esc_A{exec_A}, esc_B{exec_B};
172 stdexec::run_loop loop;
174 auto op_state = stdexec::connect(
179 const auto recorded_events_before_run = recorder_listener_t::record([&]() { op_state.start(); });
183 const auto recorded_events_after_run = recorder_listener_t::record([&]() { loop.run(); });
186 recorded_events_after_run, testing::ElementsAre(
MATCHER_FOR_WAIT_EVENT(recorded_events_before_run.at(0))));
194 std::optional<std::tuple<>> result;
196 auto op_state = stdexec::connect(
197 stdexec::schedule(
esc.get_scheduler())
200 .state = std::addressof(esc.m_state),
201 .runloop_state = std::addressof(runloop_state),
202 .result = std::addressof(result)});
208 recorder_listener_t::record([&]() { op_state.start(); }),
213 runloop_state.loop.run();
218 const auto [exec_A, exec_B] = Kokkos::Experimental::partition_space(
exec, 1, 1);
219 const context_t esc_A{exec_A}, esc_B{exec_B};
221 stdexec::run_loop loop;
223 auto op_state = stdexec::connect(
235 const auto recorded_events = recorder_listener_t::record([&]() { op_state.start(); });
238 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