61 -> std::optional<stdexec::__sync_wait::__value_tuple_for_t<Sndr>> {
64 auto schd = stdexec::get_completion_scheduler<stdexec::set_value_t>(stdexec::get_env(sndr), stdexec::env{});
66 using result_t = std::optional<stdexec::__sync_wait::__value_tuple_for_t<Sndr>>;
70 auto op_state = stdexec::connect(
71 std::forward<Sndr>(sndr),
73 .state = std::move(schd.state),
74 .runloop_state = std::addressof(runloop_state),
75 .result = std::addressof(result)});
77 stdexec::start(op_state);
79 runloop_state.
loop.run();
81 if (runloop_state.
error)
82 std::rethrow_exception(std::move(runloop_state.
error));