| 52 | //---------------------------------------------------------------------- |
| 53 | |
| 54 | int main() |
| 55 | { |
| 56 | boost::asio::io_context io_context(1); |
| 57 | |
| 58 | // Post a completion handler to be run immediately. |
| 59 | boost::asio::post(io_context, |
| 60 | boost::asio::bind_executor(logging_executor{}, |
| 61 | []{ std::cout << "post complete\n"; })); |
| 62 | |
| 63 | // Start an asynchronous accept that will complete immediately. |
| 64 | tcp::endpoint endpoint(boost::asio::ip::address_v4::loopback(), 0); |
| 65 | tcp::acceptor acceptor(io_context, endpoint); |
| 66 | tcp::socket server_socket(io_context); |
| 67 | acceptor.async_accept( |
| 68 | boost::asio::bind_executor(logging_executor{}, |
| 69 | [](auto...){ std::cout << "async_accept complete\n"; })); |
| 70 | tcp::socket client_socket(io_context); |
| 71 | client_socket.connect(acceptor.local_endpoint()); |
| 72 | |
| 73 | // Set a timer to expire immediately. |
| 74 | boost::asio::steady_timer timer(io_context); |
| 75 | timer.expires_at(boost::asio::steady_timer::clock_type::time_point::min()); |
| 76 | timer.async_wait( |
| 77 | boost::asio::bind_executor(logging_executor{}, |
| 78 | [](auto){ std::cout << "async_wait complete\n"; })); |
| 79 | |
| 80 | io_context.run(); |
| 81 | |
| 82 | return 0; |
| 83 | } |
nothing calls this directly
no test coverage detected