Skip to content

Commit 9af4974

Browse files
committed
exec::inline_scheduler is an alias for stdexec::__inln::__scheduler
1 parent b240e36 commit 9af4974

File tree

2 files changed

+16
-54
lines changed

2 files changed

+16
-54
lines changed

include/exec/inline_scheduler.hpp

Lines changed: 1 addition & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -22,52 +22,5 @@
2222
namespace exec {
2323
// A simple scheduler that executes its continuation inline, on the
2424
// thread of the caller of start().
25-
struct inline_scheduler {
26-
template <class R_>
27-
struct __op {
28-
using R = stdexec::__t<R_>;
29-
STDEXEC_NO_UNIQUE_ADDRESS R rec_;
30-
31-
friend void tag_invoke(stdexec::start_t, __op& op) noexcept {
32-
stdexec::set_value((R&&) op.rec_);
33-
}
34-
};
35-
36-
struct __sender {
37-
using is_sender = void;
38-
using completion_signatures = stdexec::completion_signatures<stdexec::set_value_t()>;
39-
40-
template <class R>
41-
friend auto tag_invoke(stdexec::connect_t, __sender, R&& rec) //
42-
noexcept(stdexec::__nothrow_constructible_from<stdexec::__decay_t<R>, R>)
43-
-> __op<stdexec::__x<stdexec::__decay_t<R>>> {
44-
return {(R&&) rec};
45-
}
46-
47-
struct __env {
48-
friend inline_scheduler
49-
tag_invoke(stdexec::get_completion_scheduler_t<stdexec::set_value_t>, const __env&) //
50-
noexcept {
51-
return {};
52-
}
53-
};
54-
55-
friend __env tag_invoke(stdexec::get_env_t, const __sender&) noexcept {
56-
return {};
57-
}
58-
};
59-
60-
STDEXEC_DETAIL_CUDACC_HOST_DEVICE //
61-
friend __sender
62-
tag_invoke(stdexec::schedule_t, const inline_scheduler&) noexcept {
63-
return {};
64-
}
65-
66-
friend stdexec::forward_progress_guarantee
67-
tag_invoke(stdexec::get_forward_progress_guarantee_t, const inline_scheduler&) noexcept {
68-
return stdexec::forward_progress_guarantee::weakly_parallel;
69-
}
70-
71-
bool operator==(const inline_scheduler&) const noexcept = default;
72-
};
25+
using inline_scheduler = stdexec::__inln::__scheduler;
7326
}

include/stdexec/execution.hpp

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2503,6 +2503,8 @@ namespace stdexec {
25032503
inline constexpr __submit_t __submit{};
25042504

25052505
namespace __inln {
2506+
struct __scheduler;
2507+
25062508
template <class _Receiver>
25072509
struct __op : __immovable {
25082510
_Receiver __recv_;
@@ -2513,7 +2515,8 @@ namespace stdexec {
25132515
};
25142516

25152517
struct __schedule_t {
2516-
static auto get_env(__ignore) noexcept;
2518+
static auto get_env(__ignore) noexcept
2519+
-> __env::__prop<get_completion_scheduler_t<set_value_t>, __scheduler>;
25172520

25182521
using __compl_sigs = stdexec::completion_signatures<set_value_t()>;
25192522
static __compl_sigs get_completion_signatures(__ignore, __ignore);
@@ -2529,17 +2532,23 @@ namespace stdexec {
25292532
using __t = __scheduler;
25302533
using __id = __scheduler;
25312534

2532-
friend auto tag_invoke(schedule_t, __scheduler) {
2535+
STDEXEC_DETAIL_CUDACC_HOST_DEVICE //
2536+
friend auto
2537+
tag_invoke(schedule_t, __scheduler) {
25332538
return make_sender_expr<__schedule_t>();
25342539
}
25352540

2541+
friend forward_progress_guarantee
2542+
tag_invoke(get_forward_progress_guarantee_t, __scheduler) noexcept {
2543+
return forward_progress_guarantee::weakly_parallel;
2544+
}
2545+
25362546
bool operator==(const __scheduler&) const noexcept = default;
25372547
};
25382548

2539-
inline auto __schedule_t::get_env(__ignore) noexcept {
2540-
return __env::__env_fn{[](get_completion_scheduler_t<set_value_t>) noexcept {
2541-
return __scheduler{};
2542-
}};
2549+
inline auto __schedule_t::get_env(__ignore) noexcept
2550+
-> __env::__prop<get_completion_scheduler_t<set_value_t>, __scheduler> {
2551+
return __mkprop(get_completion_scheduler<set_value_t>, __scheduler{});
25432552
}
25442553
}
25452554

0 commit comments

Comments
 (0)