Skip to content

Commit ba3abd3

Browse files
authored
Fix coro issues (#114)
* fixed a few coroutine related issues * fixed formatting issues * reverted te chnage checking the result from unhandled_stopped(). * addressed and issue which resulted in requiring a copy ctor * removed a static_assert left for testing * clang-format
1 parent 096a664 commit ba3abd3

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

include/beman/execution26/detail/basic_operation.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,10 @@ namespace beman::execution26::detail {
2626
*/
2727
template <typename Sender, typename Receiver>
2828
requires ::beman::execution26::detail::
29-
valid_specialization<::beman::execution26::detail::state_type, Sender, Receiver>
30-
struct basic_operation : ::beman::execution26::detail::basic_state<Sender, Receiver> {
29+
//-dk:TODO why is the remove_cvref_t needed...?
30+
valid_specialization<::beman::execution26::detail::state_type, std::remove_cvref_t<Sender>, Receiver>
31+
struct basic_operation : ::beman::execution26::detail::basic_state<Sender, Receiver> {
32+
// static_assert(std::same_as<Sender, std::remove_cvref_t<Sender>>);
3133
friend struct ::beman::execution26::start_t;
3234
using operation_state_concept = ::beman::execution26::operation_state_t;
3335
using tag_t = ::beman::execution26::tag_of_t<Sender>;

include/beman/execution26/detail/continues_on.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,9 @@ struct continues_on_t {
5050
auto operator()(Sender&& sender, Scheduler&& scheduler) const {
5151
auto domain(::beman::execution26::detail::get_domain_early(sender));
5252
return ::beman::execution26::transform_sender(
53-
domain, ::beman::execution26::detail::make_sender(*this, scheduler, ::std::forward<Sender>(sender)));
53+
domain,
54+
::beman::execution26::detail::make_sender(
55+
*this, std::forward<Scheduler>(scheduler), ::std::forward<Sender>(sender)));
5456
}
5557
};
5658

include/beman/execution26/detail/sync_wait.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ struct sync_wait_receiver {
7575

7676
struct sync_wait_t {
7777
template <typename Sender>
78-
auto apply_sender(Sender&& sender) {
78+
auto apply_sender(Sender&& sender) const {
7979
::beman::execution26::detail::sync_wait_state<Sender> state;
8080
auto op{::beman::execution26::connect(::std::forward<Sender>(sender),
8181
::beman::execution26::detail::sync_wait_receiver<Sender>{&state})};
@@ -93,7 +93,9 @@ struct sync_wait_t {
9393
typename ::beman::execution26::detail::sync_wait_result_type<Sender>;
9494
{
9595
::beman::execution26::apply_sender(
96-
::beman::execution26::detail::get_domain_early(sender), self, ::std::forward<Sender>(sender))
96+
::beman::execution26::detail::get_domain_early(std::forward<Sender>(sender)),
97+
self,
98+
::std::forward<Sender>(sender))
9799
} -> ::std::same_as<::beman::execution26::detail::sync_wait_result_type<Sender>>;
98100
}
99101
auto operator()(Sender&& sender) const {

0 commit comments

Comments
 (0)