include/boost/corosio/detail/op_base.hpp

100.0% Lines (42 / 42) 100.0% Branches (6 / 6) 98.4% Functions (243 / 247)
op_base.hpp
f(x) Functions (247)
Function Calls Lines Branches Blocks
boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer> > >::bytes_op_base() :41 28x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<std::array<boost::capy::mutable_buffer, 2ull> > > >::bytes_op_base() :41 0 0.0% – 0.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::mutable_buffer> >::bytes_op_base() :41 178095x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::array<boost::capy::mutable_buffer, 2ull> > >::bytes_op_base() :41 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::span<boost::capy::mutable_buffer const, 18446744073709551615ull> > >::bytes_op_base() :41 34241x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::const_buffer> >::bytes_op_base() :41 175617x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::const_buffer> > >::bytes_op_base() :41 28x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer> > >::bytes_op_base() :41 2x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::array<boost::capy::const_buffer, 2ull> > >::bytes_op_base() :41 1x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::span<boost::capy::const_buffer const, 18446744073709551615ull> > >::bytes_op_base() :41 34584x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::vector<boost::capy::const_buffer, std::allocator<boost::capy::const_buffer> > > >::bytes_op_base() :41 1x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_local_stream_socket<boost::corosio::iocp_t{}>::native_read_awaitable<boost::capy::mutable_buffer> >::bytes_op_base() :41 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_local_stream_socket<boost::corosio::iocp_t{}>::native_write_awaitable<boost::capy::const_buffer> >::bytes_op_base() :41 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_random_access_file<boost::corosio::iocp_t{}>::native_read_at_awaitable<boost::capy::mutable_buffer> >::bytes_op_base() :41 4x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_random_access_file<boost::corosio::iocp_t{}>::native_write_at_awaitable<boost::capy::const_buffer> >::bytes_op_base() :41 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_stream_file<boost::corosio::iocp_t{}>::native_read_awaitable<boost::capy::mutable_buffer> >::bytes_op_base() :41 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_stream_file<boost::corosio::iocp_t{}>::native_write_awaitable<boost::capy::const_buffer> >::bytes_op_base() :41 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_tcp_socket<boost::corosio::iocp_t{}>::native_read_awaitable<boost::capy::mutable_buffer> >::bytes_op_base() :41 9x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_tcp_socket<boost::corosio::iocp_t{}>::native_write_awaitable<boost::capy::const_buffer> >::bytes_op_base() :41 9x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_recv_awaitable<boost::capy::mutable_buffer> >::bytes_op_base() :41 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_recv_from_awaitable<boost::capy::mutable_buffer> >::bytes_op_base() :41 6x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_send_awaitable<boost::capy::const_buffer> >::bytes_op_base() :41 4x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_send_to_awaitable<boost::capy::const_buffer> >::bytes_op_base() :41 4x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_win_random_access_handle<boost::corosio::iocp_t{}>::native_write_at_awaitable<boost::capy::const_buffer> >::bytes_op_base() :41 1x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_win_stream_handle<boost::corosio::iocp_t{}>::native_read_awaitable<boost::capy::mutable_buffer> >::bytes_op_base() :41 1x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::random_access_file::read_some_at_awaitable<boost::capy::mutable_buffer> >::bytes_op_base() :41 174x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::random_access_file::write_some_at_awaitable<boost::capy::const_buffer> >::bytes_op_base() :41 44x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_awaitable>::bytes_op_base() :41 11x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_from_awaitable>::bytes_op_base() :41 42x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_awaitable>::bytes_op_base() :41 10x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_to_awaitable>::bytes_op_base() :41 34x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::win_random_access_handle::read_some_at_awaitable<boost::capy::mutable_buffer> >::bytes_op_base() :41 15x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::win_random_access_handle::write_some_at_awaitable<boost::capy::const_buffer> >::bytes_op_base() :41 35x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer> > >::await_ready() const :51 28x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<std::array<boost::capy::mutable_buffer, 2ull> > > >::await_ready() const :51 0 0.0% – 0.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::mutable_buffer> >::await_ready() const :51 178095x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::array<boost::capy::mutable_buffer, 2ull> > >::await_ready() const :51 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::span<boost::capy::mutable_buffer const, 18446744073709551615ull> > >::await_ready() const :51 34241x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::const_buffer> >::await_ready() const :51 175617x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::const_buffer> > >::await_ready() const :51 28x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer> > >::await_ready() const :51 2x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::array<boost::capy::const_buffer, 2ull> > >::await_ready() const :51 1x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::span<boost::capy::const_buffer const, 18446744073709551615ull> > >::await_ready() const :51 34584x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::vector<boost::capy::const_buffer, std::allocator<boost::capy::const_buffer> > > >::await_ready() const :51 1x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_local_stream_socket<boost::corosio::iocp_t{}>::native_read_awaitable<boost::capy::mutable_buffer> >::await_ready() const :51 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_local_stream_socket<boost::corosio::iocp_t{}>::native_write_awaitable<boost::capy::const_buffer> >::await_ready() const :51 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_random_access_file<boost::corosio::iocp_t{}>::native_read_at_awaitable<boost::capy::mutable_buffer> >::await_ready() const :51 4x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_random_access_file<boost::corosio::iocp_t{}>::native_write_at_awaitable<boost::capy::const_buffer> >::await_ready() const :51 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_stream_file<boost::corosio::iocp_t{}>::native_read_awaitable<boost::capy::mutable_buffer> >::await_ready() const :51 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_stream_file<boost::corosio::iocp_t{}>::native_write_awaitable<boost::capy::const_buffer> >::await_ready() const :51 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_tcp_socket<boost::corosio::iocp_t{}>::native_read_awaitable<boost::capy::mutable_buffer> >::await_ready() const :51 9x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_tcp_socket<boost::corosio::iocp_t{}>::native_write_awaitable<boost::capy::const_buffer> >::await_ready() const :51 9x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_recv_awaitable<boost::capy::mutable_buffer> >::await_ready() const :51 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_recv_from_awaitable<boost::capy::mutable_buffer> >::await_ready() const :51 6x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_send_awaitable<boost::capy::const_buffer> >::await_ready() const :51 4x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_send_to_awaitable<boost::capy::const_buffer> >::await_ready() const :51 4x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_win_random_access_handle<boost::corosio::iocp_t{}>::native_write_at_awaitable<boost::capy::const_buffer> >::await_ready() const :51 1x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_win_stream_handle<boost::corosio::iocp_t{}>::native_read_awaitable<boost::capy::mutable_buffer> >::await_ready() const :51 1x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::random_access_file::read_some_at_awaitable<boost::capy::mutable_buffer> >::await_ready() const :51 174x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::random_access_file::write_some_at_awaitable<boost::capy::const_buffer> >::await_ready() const :51 44x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_awaitable>::await_ready() const :51 11x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_from_awaitable>::await_ready() const :51 42x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_awaitable>::await_ready() const :51 10x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_to_awaitable>::await_ready() const :51 34x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::win_random_access_handle::read_some_at_awaitable<boost::capy::mutable_buffer> >::await_ready() const :51 15x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::win_random_access_handle::write_some_at_awaitable<boost::capy::const_buffer> >::await_ready() const :51 35x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer> > >::await_resume() const :58 28x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<std::array<boost::capy::mutable_buffer, 2ull> > > >::await_resume() const :58 0 0.0% – 0.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::mutable_buffer> >::await_resume() const :58 177879x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::array<boost::capy::mutable_buffer, 2ull> > >::await_resume() const :58 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::span<boost::capy::mutable_buffer const, 18446744073709551615ull> > >::await_resume() const :58 34240x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::const_buffer> >::await_resume() const :58 175614x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::const_buffer> > >::await_resume() const :58 28x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer> > >::await_resume() const :58 2x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::array<boost::capy::const_buffer, 2ull> > >::await_resume() const :58 1x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::span<boost::capy::const_buffer const, 18446744073709551615ull> > >::await_resume() const :58 34584x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::vector<boost::capy::const_buffer, std::allocator<boost::capy::const_buffer> > > >::await_resume() const :58 1x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_local_stream_socket<boost::corosio::iocp_t{}>::native_read_awaitable<boost::capy::mutable_buffer> >::await_resume() const :58 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_local_stream_socket<boost::corosio::iocp_t{}>::native_write_awaitable<boost::capy::const_buffer> >::await_resume() const :58 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_random_access_file<boost::corosio::iocp_t{}>::native_read_at_awaitable<boost::capy::mutable_buffer> >::await_resume() const :58 4x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_random_access_file<boost::corosio::iocp_t{}>::native_write_at_awaitable<boost::capy::const_buffer> >::await_resume() const :58 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_stream_file<boost::corosio::iocp_t{}>::native_read_awaitable<boost::capy::mutable_buffer> >::await_resume() const :58 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_stream_file<boost::corosio::iocp_t{}>::native_write_awaitable<boost::capy::const_buffer> >::await_resume() const :58 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_tcp_socket<boost::corosio::iocp_t{}>::native_read_awaitable<boost::capy::mutable_buffer> >::await_resume() const :58 9x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_tcp_socket<boost::corosio::iocp_t{}>::native_write_awaitable<boost::capy::const_buffer> >::await_resume() const :58 9x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_recv_awaitable<boost::capy::mutable_buffer> >::await_resume() const :58 3x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_recv_from_awaitable<boost::capy::mutable_buffer> >::await_resume() const :58 6x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_send_awaitable<boost::capy::const_buffer> >::await_resume() const :58 4x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_send_to_awaitable<boost::capy::const_buffer> >::await_resume() const :58 4x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_win_random_access_handle<boost::corosio::iocp_t{}>::native_write_at_awaitable<boost::capy::const_buffer> >::await_resume() const :58 1x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_win_stream_handle<boost::corosio::iocp_t{}>::native_read_awaitable<boost::capy::mutable_buffer> >::await_resume() const :58 1x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::random_access_file::read_some_at_awaitable<boost::capy::mutable_buffer> >::await_resume() const :58 174x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::random_access_file::write_some_at_awaitable<boost::capy::const_buffer> >::await_resume() const :58 44x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_awaitable>::await_resume() const :58 11x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_from_awaitable>::await_resume() const :58 40x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_awaitable>::await_resume() const :58 10x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_to_awaitable>::await_resume() const :58 32x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::win_random_access_handle::read_some_at_awaitable<boost::capy::mutable_buffer> >::await_resume() const :58 11x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::win_random_access_handle::write_some_at_awaitable<boost::capy::const_buffer> >::await_resume() const :58 35x 100.0% – 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer> > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 28x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::detail::slice_of<std::array<boost::capy::mutable_buffer, 2ull> > > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 0 0.0% 0.0% 0.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<boost::capy::mutable_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 178095x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::array<boost::capy::mutable_buffer, 2ull> > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 3x 77.8% 50.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_read_stream::read_some_awaitable<std::span<boost::capy::mutable_buffer const, 18446744073709551615ull> > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 34241x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::const_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 175617x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::const_buffer> > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 28x 77.8% 50.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<boost::capy::detail::slice_of<boost::capy::mutable_buffer> > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 2x 77.8% 50.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::array<boost::capy::const_buffer, 2ull> > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 1x 77.8% 50.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::span<boost::capy::const_buffer const, 18446744073709551615ull> > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 34584x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::io_write_stream::write_some_awaitable<std::vector<boost::capy::const_buffer, std::allocator<boost::capy::const_buffer> > > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 1x 77.8% 50.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_local_stream_socket<boost::corosio::iocp_t{}>::native_read_awaitable<boost::capy::mutable_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 3x 77.8% 50.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_local_stream_socket<boost::corosio::iocp_t{}>::native_write_awaitable<boost::capy::const_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 3x 77.8% 50.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_random_access_file<boost::corosio::iocp_t{}>::native_read_at_awaitable<boost::capy::mutable_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 4x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_random_access_file<boost::corosio::iocp_t{}>::native_write_at_awaitable<boost::capy::const_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 3x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_stream_file<boost::corosio::iocp_t{}>::native_read_awaitable<boost::capy::mutable_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 3x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_stream_file<boost::corosio::iocp_t{}>::native_write_awaitable<boost::capy::const_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 3x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_tcp_socket<boost::corosio::iocp_t{}>::native_read_awaitable<boost::capy::mutable_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 9x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_tcp_socket<boost::corosio::iocp_t{}>::native_write_awaitable<boost::capy::const_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 9x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_recv_awaitable<boost::capy::mutable_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 2x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_recv_from_awaitable<boost::capy::mutable_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 5x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_send_awaitable<boost::capy::const_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 3x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_send_to_awaitable<boost::capy::const_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 3x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_win_random_access_handle<boost::corosio::iocp_t{}>::native_write_at_awaitable<boost::capy::const_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 1x 77.8% 50.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::native_win_stream_handle<boost::corosio::iocp_t{}>::native_read_awaitable<boost::capy::mutable_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 1x 77.8% 50.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::random_access_file::read_some_at_awaitable<boost::capy::mutable_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 173x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::random_access_file::write_some_at_awaitable<boost::capy::const_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 43x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 10x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::recv_from_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 41x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 9x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::udp_socket::send_to_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 33x 100.0% 100.0% 100.0% boost::corosio::detail::bytes_op_base<boost::corosio::win_random_access_handle::read_some_at_awaitable<boost::capy::mutable_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 15x 77.8% 50.0% 75.0% boost::corosio::detail::bytes_op_base<boost::corosio::win_random_access_handle::write_some_at_awaitable<boost::capy::const_buffer> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :63 35x 77.8% 50.0% 75.0% boost::corosio::detail::value_op_base<boost::corosio::io_signal_set::wait_awaitable, int>::value_op_base() :99 102380x 100.0% – 100.0% boost::corosio::detail::value_op_base<boost::corosio::native_resolver<boost::corosio::iocp_t{}>::native_resolve_awaitable, std::vector<boost::corosio::endpoint, std::allocator<boost::corosio::endpoint> > >::value_op_base() :99 2x 100.0% – 100.0% boost::corosio::detail::value_op_base<boost::corosio::resolver::resolve_awaitable, std::vector<boost::corosio::endpoint, std::allocator<boost::corosio::endpoint> > >::value_op_base() :99 32x 100.0% – 100.0% boost::corosio::detail::value_op_base<boost::corosio::resolver::resolve_host_awaitable, std::vector<boost::corosio::endpoint, std::allocator<boost::corosio::endpoint> > >::value_op_base() :99 6x 100.0% – 100.0% boost::corosio::detail::value_op_base<boost::corosio::resolver::reverse_resolve_awaitable, boost::corosio::endpoint_name>::value_op_base() :99 17x 100.0% – 100.0% boost::corosio::detail::value_op_base<boost::corosio::io_signal_set::wait_awaitable, int>::await_ready() const :108 102380x 100.0% – 100.0% boost::corosio::detail::value_op_base<boost::corosio::native_resolver<boost::corosio::iocp_t{}>::native_resolve_awaitable, std::vector<boost::corosio::endpoint, std::allocator<boost::corosio::endpoint> > >::await_ready() const :108 2x 100.0% – 100.0% boost::corosio::detail::value_op_base<boost::corosio::resolver::resolve_awaitable, std::vector<boost::corosio::endpoint, std::allocator<boost::corosio::endpoint> > >::await_ready() const :108 32x 100.0% – 100.0% boost::corosio::detail::value_op_base<boost::corosio::resolver::resolve_host_awaitable, std::vector<boost::corosio::endpoint, std::allocator<boost::corosio::endpoint> > >::await_ready() const :108 6x 100.0% – 100.0% boost::corosio::detail::value_op_base<boost::corosio::resolver::reverse_resolve_awaitable, boost::corosio::endpoint_name>::await_ready() const :108 17x 100.0% – 100.0% boost::corosio::detail::value_op_base<boost::corosio::io_signal_set::wait_awaitable, int>::await_resume() const :115 100773x 100.0% – 100.0% boost::corosio::detail::value_op_base<boost::corosio::native_resolver<boost::corosio::iocp_t{}>::native_resolve_awaitable, std::vector<boost::corosio::endpoint, std::allocator<boost::corosio::endpoint> > >::await_resume() const :115 2x 100.0% – 100.0% boost::corosio::detail::value_op_base<boost::corosio::resolver::resolve_awaitable, std::vector<boost::corosio::endpoint, std::allocator<boost::corosio::endpoint> > >::await_resume() const :115 27x 100.0% – 100.0% boost::corosio::detail::value_op_base<boost::corosio::resolver::reverse_resolve_awaitable, boost::corosio::endpoint_name>::await_resume() const :115 15x 100.0% – 100.0% boost::corosio::detail::value_op_base<boost::corosio::io_signal_set::wait_awaitable, int>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :120 102380x 100.0% 100.0% 100.0% boost::corosio::detail::value_op_base<boost::corosio::native_resolver<boost::corosio::iocp_t{}>::native_resolve_awaitable, std::vector<boost::corosio::endpoint, std::allocator<boost::corosio::endpoint> > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :120 2x 100.0% 100.0% 100.0% boost::corosio::detail::value_op_base<boost::corosio::resolver::resolve_awaitable, std::vector<boost::corosio::endpoint, std::allocator<boost::corosio::endpoint> > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :120 32x 100.0% 100.0% 100.0% boost::corosio::detail::value_op_base<boost::corosio::resolver::resolve_host_awaitable, std::vector<boost::corosio::endpoint, std::allocator<boost::corosio::endpoint> > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :120 6x 100.0% 100.0% 100.0% boost::corosio::detail::value_op_base<boost::corosio::resolver::reverse_resolve_awaitable, boost::corosio::endpoint_name>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :120 17x 100.0% 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_acceptor::accept_awaitable>::void_op_base() :153 23x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_acceptor::move_accept_awaitable>::void_op_base() :153 3x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_acceptor::wait_awaitable>::void_op_base() :153 6x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::connect_awaitable>::void_op_base() :153 22x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::wait_awaitable>::void_op_base() :153 7x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_local_stream_acceptor<boost::corosio::iocp_t{}>::native_accept_awaitable>::void_op_base() :153 3x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_local_stream_acceptor<boost::corosio::iocp_t{}>::native_move_accept_awaitable>::void_op_base() :153 3x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_local_stream_acceptor<boost::corosio::iocp_t{}>::native_wait_awaitable>::void_op_base() :153 2x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_local_stream_socket<boost::corosio::iocp_t{}>::native_connect_awaitable>::void_op_base() :153 5x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_local_stream_socket<boost::corosio::iocp_t{}>::native_wait_awaitable>::void_op_base() :153 2x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_tcp_acceptor<boost::corosio::iocp_t{}>::native_accept_awaitable>::void_op_base() :153 12x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_tcp_acceptor<boost::corosio::iocp_t{}>::native_accept_value_awaitable>::void_op_base() :153 4x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_tcp_acceptor<boost::corosio::iocp_t{}>::native_wait_awaitable>::void_op_base() :153 3x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_tcp_socket<boost::corosio::iocp_t{}>::native_connect_awaitable>::void_op_base() :153 14x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_tcp_socket<boost::corosio::iocp_t{}>::native_wait_awaitable>::void_op_base() :153 5x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_connect_awaitable>::void_op_base() :153 5x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_wait_awaitable>::void_op_base() :153 2x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_win_object_handle<boost::corosio::iocp_t{}>::native_wait_awaitable>::void_op_base() :153 1x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::accept_awaitable>::void_op_base() :153 3280x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::accept_value_awaitable>::void_op_base() :153 19x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::wait_awaitable>::void_op_base() :153 12x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::connect_awaitable>::void_op_base() :153 2976x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::wait_awaitable>::void_op_base() :153 40x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::connect_awaitable>::void_op_base() :153 20x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::wait_awaitable>::void_op_base() :153 510x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::win_object_handle::wait_awaitable>::void_op_base() :153 3222x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_acceptor::accept_awaitable>::await_ready() const :161 23x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_acceptor::move_accept_awaitable>::await_ready() const :161 3x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_acceptor::wait_awaitable>::await_ready() const :161 6x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::connect_awaitable>::await_ready() const :161 22x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::wait_awaitable>::await_ready() const :161 7x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_local_stream_acceptor<boost::corosio::iocp_t{}>::native_accept_awaitable>::await_ready() const :161 3x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_local_stream_acceptor<boost::corosio::iocp_t{}>::native_move_accept_awaitable>::await_ready() const :161 3x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_local_stream_acceptor<boost::corosio::iocp_t{}>::native_wait_awaitable>::await_ready() const :161 2x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_local_stream_socket<boost::corosio::iocp_t{}>::native_connect_awaitable>::await_ready() const :161 5x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_local_stream_socket<boost::corosio::iocp_t{}>::native_wait_awaitable>::await_ready() const :161 2x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_tcp_acceptor<boost::corosio::iocp_t{}>::native_accept_awaitable>::await_ready() const :161 12x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_tcp_acceptor<boost::corosio::iocp_t{}>::native_accept_value_awaitable>::await_ready() const :161 4x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_tcp_acceptor<boost::corosio::iocp_t{}>::native_wait_awaitable>::await_ready() const :161 3x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_tcp_socket<boost::corosio::iocp_t{}>::native_connect_awaitable>::await_ready() const :161 14x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_tcp_socket<boost::corosio::iocp_t{}>::native_wait_awaitable>::await_ready() const :161 5x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_connect_awaitable>::await_ready() const :161 5x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_wait_awaitable>::await_ready() const :161 2x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_win_object_handle<boost::corosio::iocp_t{}>::native_wait_awaitable>::await_ready() const :161 1x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::accept_awaitable>::await_ready() const :161 3280x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::accept_value_awaitable>::await_ready() const :161 19x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::wait_awaitable>::await_ready() const :161 12x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::connect_awaitable>::await_ready() const :161 2976x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::wait_awaitable>::await_ready() const :161 40x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::connect_awaitable>::await_ready() const :161 20x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::wait_awaitable>::await_ready() const :161 510x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::win_object_handle::wait_awaitable>::await_ready() const :161 3222x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_acceptor::wait_awaitable>::await_resume() const :168 5x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::connect_awaitable>::await_resume() const :168 21x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::wait_awaitable>::await_resume() const :168 6x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_local_stream_acceptor<boost::corosio::iocp_t{}>::native_wait_awaitable>::await_resume() const :168 2x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_local_stream_socket<boost::corosio::iocp_t{}>::native_connect_awaitable>::await_resume() const :168 5x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_local_stream_socket<boost::corosio::iocp_t{}>::native_wait_awaitable>::await_resume() const :168 2x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_tcp_acceptor<boost::corosio::iocp_t{}>::native_wait_awaitable>::await_resume() const :168 3x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_tcp_socket<boost::corosio::iocp_t{}>::native_connect_awaitable>::await_resume() const :168 14x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_tcp_socket<boost::corosio::iocp_t{}>::native_wait_awaitable>::await_resume() const :168 5x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_connect_awaitable>::await_resume() const :168 5x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_wait_awaitable>::await_resume() const :168 2x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_win_object_handle<boost::corosio::iocp_t{}>::native_wait_awaitable>::await_resume() const :168 1x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::wait_awaitable>::await_resume() const :168 10x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::connect_awaitable>::await_resume() const :168 2975x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::wait_awaitable>::await_resume() const :168 36x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::connect_awaitable>::await_resume() const :168 20x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::wait_awaitable>::await_resume() const :168 509x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::win_object_handle::wait_awaitable>::await_resume() const :168 3221x 100.0% – 100.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_acceptor::accept_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 22x 77.8% 50.0% 75.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_acceptor::move_accept_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 2x 77.8% 50.0% 75.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_acceptor::wait_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 5x 77.8% 50.0% 75.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::connect_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 22x 77.8% 50.0% 75.0% boost::corosio::detail::void_op_base<boost::corosio::local_stream_socket::wait_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 7x 77.8% 50.0% 75.0% boost::corosio::detail::void_op_base<boost::corosio::native_local_stream_acceptor<boost::corosio::iocp_t{}>::native_accept_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 2x 77.8% 50.0% 75.0% boost::corosio::detail::void_op_base<boost::corosio::native_local_stream_acceptor<boost::corosio::iocp_t{}>::native_move_accept_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 1x 77.8% 50.0% 75.0% boost::corosio::detail::void_op_base<boost::corosio::native_local_stream_acceptor<boost::corosio::iocp_t{}>::native_wait_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 2x 77.8% 50.0% 75.0% boost::corosio::detail::void_op_base<boost::corosio::native_local_stream_socket<boost::corosio::iocp_t{}>::native_connect_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 5x 77.8% 50.0% 75.0% boost::corosio::detail::void_op_base<boost::corosio::native_local_stream_socket<boost::corosio::iocp_t{}>::native_wait_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 2x 77.8% 50.0% 75.0% boost::corosio::detail::void_op_base<boost::corosio::native_tcp_acceptor<boost::corosio::iocp_t{}>::native_accept_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 11x 100.0% 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_tcp_acceptor<boost::corosio::iocp_t{}>::native_accept_value_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 2x 100.0% 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_tcp_acceptor<boost::corosio::iocp_t{}>::native_wait_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 3x 100.0% 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_tcp_socket<boost::corosio::iocp_t{}>::native_connect_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 14x 100.0% 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_tcp_socket<boost::corosio::iocp_t{}>::native_wait_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 5x 100.0% 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_connect_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 5x 100.0% 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_udp_socket<boost::corosio::iocp_t{}>::native_wait_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 2x 100.0% 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::native_win_object_handle<boost::corosio::iocp_t{}>::native_wait_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 1x 77.8% 50.0% 75.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::accept_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 3279x 100.0% 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::accept_value_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 17x 77.8% 50.0% 75.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_acceptor::wait_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 11x 77.8% 50.0% 75.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::connect_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 2976x 100.0% 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::tcp_socket::wait_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 40x 100.0% 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::connect_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 20x 100.0% 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::udp_socket::wait_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 510x 100.0% 100.0% 100.0% boost::corosio::detail::void_op_base<boost::corosio::win_object_handle::wait_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::await_context const*) :173 3222x 100.0% 100.0% 100.0%
Line Branch TLA Hits Source Code
1 //
2 // Copyright (c) 2026 Michael Vandeberg
3 //
4 // Distributed under the Boost Software License, Version 1.0. (See accompanying
5 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 //
7 // Official repository: https://github.com/cppalliance/corosio
8 //
9
10 #ifndef BOOST_COROSIO_DETAIL_OP_BASE_HPP
11 #define BOOST_COROSIO_DETAIL_OP_BASE_HPP
12
13 #include <boost/capy/error.hpp>
14 #include <boost/capy/continuation.hpp>
15 #include <boost/capy/results.hpp>
16 #include <boost/capy/ex/executor_ref.hpp>
17 #include <boost/capy/ex/await_context.hpp>
18
19 #include <coroutine>
20 #include <cstddef>
21 #include <stop_token>
22 #include <system_error>
23
24 namespace boost::corosio::detail {
25
26 /* CRTP base for awaitables that return results<std::size_t>.
27
28 Derived classes must provide:
29
30 std::coroutine_handle<> dispatch(
31 capy::continuation& cont,
32 capy::executor_ref ex) const;
33
34 which forwards to the backend implementation method, passing
35 token_, &ec_, and &bytes_ as the cancellation/output parameters.
36 */
37 template<class Derived>
38 class bytes_op_base
39 {
40 friend Derived;
41 423021x bytes_op_base() = default;
42
43 public:
44 std::stop_token token_;
45 mutable std::error_code ec_;
46 mutable std::size_t bytes_ = 0;
47 // Lives in the awaiting frame until resumption, so a completion
48 // posted through an executor never shares the object's state.
49 mutable capy::continuation cont_;
50
51 423021x bool await_ready() const noexcept
52 {
53 // A pre-set ec_ means the initiator failed before dispatch
54 // (e.g. a closed object); complete immediately with that error.
55 423021x return static_cast<bool>(ec_);
56 }
57
58 422793x [[nodiscard]] capy::results<std::size_t> await_resume() const noexcept
59 {
60 422793x return {ec_, bytes_};
61 }
62
63 423011x auto await_suspend(std::coroutine_handle<> h, capy::await_context const* env)
64 -> std::coroutine_handle<>
65 {
66 423011x token_ = env->stop_token;
67 // A pre-stopped token short-circuits before dispatch so no I/O
68 // is performed. A stop landing after dispatch is decoded by the
69 // backend, and a completed transfer is reported verbatim: the
70 // stream contracts forbid discarding the byte count.
71
2/2
✓ Branch 4 → 5 taken 31 times.
✓ Branch 4 → 7 taken 422980 times.
423011x if (token_.stop_requested())
72 {
73 31x ec_ = capy::error::canceled;
74 31x return h;
75 }
76 422980x cont_.h = h;
77 422980x cont_.owner = env->owner;
78 422980x return static_cast<Derived const*>(this)->dispatch(
79 422980x cont_, env->executor);
80 }
81 };
82
83 /* CRTP base for awaitables that return results<Value> for a
84 moved-out result object (e.g. the resolver's result lists).
85
86 Derived classes must provide:
87
88 std::coroutine_handle<> dispatch(
89 capy::continuation& cont,
90 capy::executor_ref ex) const;
91
92 which forwards to the backend implementation method, passing
93 token_, &ec_, and &value_ as the cancellation/output parameters.
94 */
95 template<class Derived, class Value>
96 class value_op_base
97 {
98 friend Derived;
99 102437x value_op_base() = default;
100
101 public:
102 std::stop_token token_;
103 mutable std::error_code ec_;
104 mutable Value value_{};
105 // See bytes_op_base::cont_.
106 mutable capy::continuation cont_;
107
108 102437x bool await_ready() const noexcept
109 {
110 // A pre-set ec_ means the initiator failed before dispatch;
111 // complete immediately with that error.
112 102437x return static_cast<bool>(ec_);
113 }
114
115 100817x [[nodiscard]] capy::results<Value> await_resume() const noexcept
116 {
117 100817x return {ec_, std::move(value_)};
118 }
119
120 102437x auto await_suspend(std::coroutine_handle<> h, capy::await_context const* env)
121 -> std::coroutine_handle<>
122 {
123 102437x token_ = env->stop_token;
124 // A pre-stopped token short-circuits before dispatch; a stop
125 // landing after dispatch leaves the completed result intact.
126
2/2
✓ Branch 4 → 5 taken 22 times.
✓ Branch 4 → 7 taken 102415 times.
102437x if (token_.stop_requested())
127 {
128 22x ec_ = capy::error::canceled;
129 22x return h;
130 }
131 102415x cont_.h = h;
132 102415x cont_.owner = env->owner;
133 102415x return static_cast<Derived const*>(this)->dispatch(
134 102415x cont_, env->executor);
135 }
136 };
137
138 /* CRTP base for awaitables that return results<>.
139
140 Derived classes must provide:
141
142 std::coroutine_handle<> dispatch(
143 capy::continuation& cont,
144 capy::executor_ref ex) const;
145
146 which forwards to the backend implementation method, passing
147 token_ and &ec_ as the cancellation/output parameters.
148 */
149 template<class Derived>
150 class void_op_base
151 {
152 friend Derived;
153 10201x void_op_base() = default;
154
155 public:
156 std::stop_token token_;
157 mutable std::error_code ec_;
158 // See bytes_op_base::cont_.
159 mutable capy::continuation cont_;
160
161 10201x bool await_ready() const noexcept
162 {
163 // A pre-set ec_ means the initiator failed before dispatch
164 // (e.g. auto-open); complete immediately with that error.
165 10201x return static_cast<bool>(ec_);
166 }
167
168 6842x [[nodiscard]] capy::results<> await_resume() const noexcept
169 {
170 6842x return {ec_};
171 }
172
173 10188x auto await_suspend(std::coroutine_handle<> h, capy::await_context const* env)
174 -> std::coroutine_handle<>
175 {
176 10188x token_ = env->stop_token;
177 // A pre-stopped token short-circuits before dispatch; a stop
178 // landing after dispatch leaves the completed result intact.
179
2/2
✓ Branch 4 → 5 taken 510 times.
✓ Branch 4 → 7 taken 9678 times.
10188x if (token_.stop_requested())
180 {
181 510x ec_ = capy::error::canceled;
182 510x return h;
183 }
184 9678x cont_.h = h;
185 9678x cont_.owner = env->owner;
186 9678x return static_cast<Derived const*>(this)->dispatch(
187 9678x cont_, env->executor);
188 }
189 };
190
191 } // namespace boost::corosio::detail
192
193 #endif // BOOST_COROSIO_DETAIL_OP_BASE_HPP
194