| 54 | Scheduler sched; |
| 55 | |
| 56 | void start() & noexcept |
| 57 | { |
| 58 | if (n < cutoff) |
| 59 | { |
| 60 | stdexec::set_value(static_cast<Receiver&&>(rcvr_), serial_fib(n)); |
| 61 | } |
| 62 | else |
| 63 | { |
| 64 | auto mkchild = [&](long n) |
| 65 | { |
| 66 | return stdexec::starts_on(sched, fib_sender(fib_s{cutoff, n, sched})); |
| 67 | }; |
| 68 | |
| 69 | exec::start_detached( |
| 70 | stdexec::when_all(mkchild(n - 1), mkchild(n - 2)) |
| 71 | | stdexec::then([rcvr = static_cast<Receiver&&>(rcvr_)](long a, long b) mutable |
| 72 | { stdexec::set_value(static_cast<Receiver&&>(rcvr), a + b); })); |
| 73 | } |
| 74 | } |
| 75 | }; |
| 76 | |
| 77 | template <stdexec::receiver_of<completion_signatures> Receiver> |
nothing calls this directly
no test coverage detected