| 178 | |
| 179 | template <typename CompletionToken> |
| 180 | auto nested_post_loop(boost::asio::io_context& ctx, CompletionToken&& token) |
| 181 | { |
| 182 | return boost::asio::async_initiate<CompletionToken, void(int)>( |
| 183 | boost::asio::co_composed( |
| 184 | [](auto state, boost::asio::io_context& ctx) -> void |
| 185 | { |
| 186 | int i = 0; |
| 187 | for (; i < 100; ++i) |
| 188 | co_await nested_post(ctx, boost::asio::deferred); |
| 189 | co_yield state.complete(i); |
| 190 | }, ctx), token, std::ref(ctx)); |
| 191 | } |
| 192 | |
| 193 | void test_nested_post_loop() |
| 194 | { |