1#include "gtest/gtest.h"
6#include "exec/split.hpp"
7#include "exec/static_thread_pool.hpp"
33TEST(check_scheduler,
default) {
40 ASSERT_EQ(tid, std::this_thread::get_id());
44TEST(check_scheduler, static_thread_pool) {
47 experimental::execution::static_thread_pool pool{1};
49 auto chain = stdexec::schedule(pool.get_scheduler())
53 stdexec::sync_wait(std::move(chain));
55 ASSERT_NE(tid, std::this_thread::get_id());
63TEST(check_scheduler, split_when_all_no_forward) {
64 experimental::execution::static_thread_pool pool{1};
66 auto fork = stdexec::schedule(pool.get_scheduler())
70 auto chain = stdexec::when_all(
83TEST(check_scheduler, split_transfer_when_all_no_forward) {
84 ::exec::static_thread_pool pool{1};
86 auto fork = stdexec::schedule(pool.get_scheduler())
90 auto chain = stdexec::transfer_when_all(
100TEST(check_scheduler, multiple_splits) {
101 ::exec::static_thread_pool pool{1};
103 auto fork_A = stdexec::schedule(pool.get_scheduler())
110 auto chain_A = stdexec::when_all(std::move(chain_A_branch_a), std::move(chain_A_branch_b)) |
THEN_SHOW_THREAD_ID;
112 auto fork_B = std::move(chain_A) | stdexec::continues_on(pool.get_scheduler())
114 | experimental::execution::split();
121 auto chain_B = stdexec::when_all(std::move(chain_B_branch_a), std::move(chain_B_branch_b)) |
THEN_SHOW_THREAD_ID
#define KOKKOS_EXECUTION_STDEXEC_PRAGMA_DIAGNOSTIC_IGNORED
Basic list of ignored diagnostics when including anything from stdexec.
constexpr check_scheduler_type_t< Tag, Schd > check_scheduler_type
experimental::execution::_pool_::_static_thread_pool::scheduler static_thread_pool_scheduler_t
stdexec::run_loop::scheduler run_loop_scheduler_t
#define THEN_SHOW_THREAD_ID
Add a then calling Tests::Utils::Functors::ShowThreadID. // NOLINTNEXTLINE(cppcoreguidelines-macro-us...
#define THEN_STORE_THREAD_ID(__id__)
Add a then calling Tests::Utils::Functors::StoreThreadID. // NOLINTNEXTLINE(cppcoreguidelines-macro-u...