include/boost/corosio/native/detail/reactor/reactor_socket_service.hpp

86.8% Lines (302/348) 84.8% List of functions (78/92)
reactor_socket_service.hpp
f(x) Functions (92)
Function Calls Lines Blocks
boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::reactor_socket_service(boost::capy::execution_context&) :48 357x 100.0% 83.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::reactor_socket_service(boost::capy::execution_context&) :48 230x 100.0% 83.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::reactor_socket_service(boost::capy::execution_context&) :48 357x 100.0% 83.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::reactor_socket_service(boost::capy::execution_context&) :48 230x 100.0% 83.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::reactor_socket_service(boost::capy::execution_context&) :48 357x 100.0% 83.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::reactor_socket_service(boost::capy::execution_context&) :48 230x 100.0% 83.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::reactor_socket_service(boost::capy::execution_context&) :48 357x 100.0% 83.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::reactor_socket_service(boost::capy::execution_context&) :48 230x 100.0% 83.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::~reactor_socket_service() :56 357x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::~reactor_socket_service() :56 230x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::~reactor_socket_service() :56 357x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::~reactor_socket_service() :56 230x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::~reactor_socket_service() :56 357x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::~reactor_socket_service() :56 230x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::~reactor_socket_service() :56 357x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::~reactor_socket_service() :56 230x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::shutdown() :58 357x 66.7% 75.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::shutdown() :58 230x 66.7% 75.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::shutdown() :58 357x 66.7% 75.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::shutdown() :58 230x 66.7% 75.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::shutdown() :58 357x 66.7% 75.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::shutdown() :58 230x 66.7% 75.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::shutdown() :58 357x 66.7% 75.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::shutdown() :58 230x 66.7% 75.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::construct() :75 17x 100.0% 74.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::construct() :75 17x 100.0% 74.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::construct() :75 17x 100.0% 74.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::construct() :75 17x 100.0% 74.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::construct() :75 8967x 100.0% 74.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::construct() :75 6246x 100.0% 74.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::construct() :75 43x 100.0% 74.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::construct() :75 43x 100.0% 74.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::destroy(boost::corosio::io_object::implementation*) :89 17x 100.0% 85.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::destroy(boost::corosio::io_object::implementation*) :89 17x 100.0% 85.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::destroy(boost::corosio::io_object::implementation*) :89 17x 100.0% 85.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::destroy(boost::corosio::io_object::implementation*) :89 17x 100.0% 85.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::destroy(boost::corosio::io_object::implementation*) :89 8967x 100.0% 85.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::destroy(boost::corosio::io_object::implementation*) :89 6246x 100.0% 85.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::destroy(boost::corosio::io_object::implementation*) :89 43x 100.0% 85.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::destroy(boost::corosio::io_object::implementation*) :89 43x 100.0% 85.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::close(boost::corosio::io_object::handle&) :99 33x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::close(boost::corosio::io_object::handle&) :99 33x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::close(boost::corosio::io_object::handle&) :99 30x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::close(boost::corosio::io_object::handle&) :99 30x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::close(boost::corosio::io_object::handle&) :99 14921x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::close(boost::corosio::io_object::handle&) :99 10411x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::close(boost::corosio::io_object::handle&) :99 83x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::close(boost::corosio::io_object::handle&) :99 83x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::scheduler() const :104 48x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::scheduler() const :104 48x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::scheduler() const :104 33x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::scheduler() const :104 33x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::scheduler() const :104 198384x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::scheduler() const :104 223128x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::scheduler() const :104 112x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::scheduler() const :104 112x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::post(boost::corosio::detail::scheduler_op*) :109 9x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::post(boost::corosio::detail::scheduler_op*) :109 9x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::post(boost::corosio::detail::scheduler_op*) :109 5x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::post(boost::corosio::detail::scheduler_op*) :109 5x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::post(boost::corosio::detail::scheduler_op*) :109 37417x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::post(boost::corosio::detail::scheduler_op*) :109 42664x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::post(boost::corosio::detail::scheduler_op*) :109 21x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::post(boost::corosio::detail::scheduler_op*) :109 21x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::work_started() :114 0 0.0% 0.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::work_started() :114 0 0.0% 0.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::work_started() :114 0 0.0% 0.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::work_started() :114 0 0.0% 0.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::work_started() :114 3166x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::work_started() :114 2260x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::work_started() :114 5x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::work_started() :114 5x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::work_finished() :119 0 0.0% 0.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::work_finished() :119 0 0.0% 0.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::work_finished() :119 0 0.0% 0.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::work_finished() :119 0 0.0% 0.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::work_finished() :119 147x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_tcp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::tcp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::tcp_socket::implementation, boost::corosio::endpoint> >::work_finished() :119 141x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::work_finished() :119 4x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::work_finished() :119 4x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::pre_shutdown(boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint>*) :126 0 0.0% 0.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::pre_shutdown(boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint>*) :126 0 0.0% 0.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::pre_shutdown(boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint>*) :126 0 0.0% 0.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::pre_shutdown(boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint>*) :126 0 0.0% 0.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::pre_shutdown(boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint>*) :126 0 0.0% 0.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::pre_shutdown(boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint>*) :126 0 0.0% 0.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::pre_destroy(boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint>*) :127 17x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_dgram_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_datagram_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint> >::pre_destroy(boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_datagram_socket::implementation, boost::corosio::local_endpoint>*) :127 17x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::pre_destroy(boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint>*) :127 17x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_local_stream_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >, boost::corosio::detail::local_stream_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint> >::pre_destroy(boost::corosio::detail::reactor_stream_socket_final<boost::corosio::detail::select_traits, boost::corosio::local_stream_socket::implementation, boost::corosio::local_endpoint>*) :127 17x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::epoll_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::epoll_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::pre_destroy(boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::epoll_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint>*) :127 43x 100.0% 100.0% boost::corosio::detail::reactor_socket_service<boost::corosio::detail::reactor_udp_service_final<boost::corosio::detail::select_traits, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >, boost::corosio::detail::udp_service, boost::corosio::detail::select_scheduler, boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint> >::pre_destroy(boost::corosio::detail::reactor_dgram_socket_final<boost::corosio::detail::select_traits, boost::corosio::udp_socket::implementation, boost::corosio::endpoint>*) :127 43x 100.0% 100.0%
Line TLA Hits Source Code
1 //
2 // Copyright (c) 2026 Steve Gerbino
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_NATIVE_DETAIL_REACTOR_REACTOR_SOCKET_SERVICE_HPP
11 #define BOOST_COROSIO_NATIVE_DETAIL_REACTOR_REACTOR_SOCKET_SERVICE_HPP
12
13 #include <boost/corosio/io/io_object.hpp>
14 #include <boost/corosio/detail/scheduler_op.hpp>
15 #include <boost/corosio/native/detail/reactor/reactor_service_state.hpp>
16 #include <boost/capy/ex/execution_context.hpp>
17
18 #include <memory>
19 #include <mutex>
20
21 namespace boost::corosio::detail {
22
23 /** CRTP base for reactor-backed socket/datagram service implementations.
24
25 Provides the shared construct/destroy/shutdown/close/post/work
26 logic that is identical across all reactor backends and socket
27 types. Derived classes add only protocol-specific open/bind.
28
29 @tparam Derived The concrete service type (CRTP).
30 @tparam ServiceBase The abstract service base (tcp_service
31 or udp_service).
32 @tparam Scheduler The backend's scheduler type.
33 @tparam Impl The backend's socket/datagram impl type.
34 */
35 template<class Derived, class ServiceBase, class Scheduler, class Impl>
36 class reactor_socket_service : public ServiceBase
37 {
38 friend Derived;
39 using state_type = reactor_service_state<Scheduler, Impl>;
40
41 public:
42 /// Propagated from Scheduler for register_op's write notification.
43 static constexpr bool needs_write_notification =
44 Scheduler::needs_write_notification;
45
46 private:
47
48 2348x explicit reactor_socket_service(capy::execution_context& ctx)
49 2348x : state_(
50 std::make_unique<state_type>(
51 2348x ctx.template use_service<Scheduler>()))
52 {
53 2348x }
54
55 public:
56 2348x ~reactor_socket_service() override = default;
57
58 2348x void shutdown() override
59 {
60 2348x std::lock_guard lock(state_->mutex_);
61
62 2348x while (auto* impl = state_->impl_list_.pop_front())
63 {
64 static_cast<Derived*>(this)->pre_shutdown(impl);
65 impl->close_socket();
66 }
67
68 // Don't clear impl_ptrs_ here. The scheduler shuts down after us
69 // and drains completed_ops_, calling destroy() on each queued op.
70 // Letting ~state_ release the ptrs (during service destruction,
71 // after scheduler shutdown) keeps every impl alive until all ops
72 // have been drained.
73 2348x }
74
75 15367x io_object::implementation* construct() override
76 {
77 15367x auto impl = std::make_shared<Impl>(static_cast<Derived&>(*this));
78 15367x auto* raw = impl.get();
79
80 {
81 15367x std::lock_guard lock(state_->mutex_);
82 15367x state_->impl_ptrs_.emplace(raw, std::move(impl));
83 15367x state_->impl_list_.push_back(raw);
84 15367x }
85
86 15367x return raw;
87 15367x }
88
89 15367x void destroy(io_object::implementation* impl) override
90 {
91 15367x auto* typed = static_cast<Impl*>(impl);
92 15367x static_cast<Derived*>(this)->pre_destroy(typed);
93 15367x typed->close_socket();
94 15367x std::lock_guard lock(state_->mutex_);
95 15367x state_->impl_list_.remove(typed);
96 15367x state_->impl_ptrs_.erase(typed);
97 15367x }
98
99 25624x void close(io_object::handle& h) override
100 {
101 25624x static_cast<Impl*>(h.get())->close_socket();
102 25624x }
103
104 421898x Scheduler& scheduler() const noexcept
105 {
106 421898x return state_->sched_;
107 }
108
109 80151x void post(scheduler_op* op)
110 {
111 80151x state_->sched_.post(op);
112 80151x }
113
114 5436x void work_started() noexcept
115 {
116 5436x state_->sched_.work_started();
117 5436x }
118
119 296x void work_finished() noexcept
120 {
121 296x state_->sched_.work_finished();
122 296x }
123
124 protected:
125 // Override in derived to add pre-close logic (e.g. kqueue linger reset)
126 void pre_shutdown(Impl*) noexcept {}
127 154x void pre_destroy(Impl*) noexcept {}
128
129 std::unique_ptr<state_type> state_;
130
131 private:
132 reactor_socket_service(reactor_socket_service const&) = delete;
133 reactor_socket_service& operator=(reactor_socket_service const&) = delete;
134 };
135
136 } // namespace boost::corosio::detail
137
138 #endif // BOOST_COROSIO_NATIVE_DETAIL_REACTOR_REACTOR_SOCKET_SERVICE_HPP
139