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

68.5% Lines (87/127) 78.8% List of functions (52/66) 36.6% Branches (82/224)
reactor_acceptor.hpp
f(x) Functions (66)
Function Calls Lines Branches Blocks
boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::detail::kqueue_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::reactor_acceptor(boost::corosio::detail::kqueue_local_stream_acceptor_service&) :64 6x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::detail::kqueue_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::reactor_acceptor(boost::corosio::detail::kqueue_tcp_acceptor_service&) :64 1094x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_local_stream_acceptor, boost::corosio::detail::select_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::reactor_acceptor(boost::corosio::detail::select_local_stream_acceptor_service&) :64 6x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_tcp_acceptor, boost::corosio::detail::select_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::reactor_acceptor(boost::corosio::detail::select_tcp_acceptor_service&) :64 83x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::detail::kqueue_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::~reactor_acceptor() :78 6x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::detail::kqueue_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::~reactor_acceptor() :78 1094x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_local_stream_acceptor, boost::corosio::detail::select_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::~reactor_acceptor() :78 6x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_tcp_acceptor, boost::corosio::detail::select_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::~reactor_acceptor() :78 83x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::detail::kqueue_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::local_endpoint() const :87 2x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::detail::kqueue_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::local_endpoint() const :87 6483x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_local_stream_acceptor, boost::corosio::detail::select_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::local_endpoint() const :87 2x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_tcp_acceptor, boost::corosio::detail::select_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::local_endpoint() const :87 1900x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::detail::kqueue_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::is_open() const :93 22x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::detail::kqueue_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::is_open() const :93 13031x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_local_stream_acceptor, boost::corosio::detail::select_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::is_open() const :93 22x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_tcp_acceptor, boost::corosio::detail::select_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::is_open() const :93 2382x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::detail::kqueue_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::set_option(int, int, void const*, unsigned long) :99 0 83.3% 16.7% 0.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::detail::kqueue_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::set_option(int, int, void const*, unsigned long) :99 1088x 100.0% 57.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_local_stream_acceptor, boost::corosio::detail::select_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::set_option(int, int, void const*, unsigned long) :99 0 100.0% 0.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_tcp_acceptor, boost::corosio::detail::select_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::set_option(int, int, void const*, unsigned long) :99 77x 100.0% 57.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::detail::kqueue_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::get_option(int, int, void*, unsigned long*) const :113 0 0.0% 0.0% 0.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::detail::kqueue_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::get_option(int, int, void*, unsigned long*) const :113 0 100.0% 0.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_local_stream_acceptor, boost::corosio::detail::select_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::get_option(int, int, void*, unsigned long*) const :113 0 100.0% 0.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_tcp_acceptor, boost::corosio::detail::select_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::get_option(int, int, void*, unsigned long*) const :113 0 100.0% 0.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::detail::kqueue_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::set_local_endpoint(boost::corosio::local_endpoint) :124 5x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::detail::kqueue_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::set_local_endpoint(boost::corosio::endpoint) :124 1086x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_local_stream_acceptor, boost::corosio::detail::select_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::set_local_endpoint(boost::corosio::local_endpoint) :124 5x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_tcp_acceptor, boost::corosio::detail::select_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::set_local_endpoint(boost::corosio::endpoint) :124 76x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::detail::kqueue_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::init_acceptor_fd(int) :130 6x 100.0% 50.0% 66.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::detail::kqueue_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::init_acceptor_fd(int) :130 1091x 100.0% 66.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_local_stream_acceptor, boost::corosio::detail::select_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::init_acceptor_fd(int) :130 6x 100.0% 66.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_tcp_acceptor, boost::corosio::detail::select_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::init_acceptor_fd(int) :130 79x 100.0% 66.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::detail::kqueue_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::service() :141 2x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::detail::kqueue_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::service() :141 5406x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_local_stream_acceptor, boost::corosio::detail::select_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::service() :141 2x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_tcp_acceptor, boost::corosio::detail::select_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::service() :141 1825x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::detail::kqueue_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::cancel() :146 0 100.0% 0.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::detail::kqueue_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::cancel() :146 3x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_local_stream_acceptor, boost::corosio::detail::select_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::cancel() :146 0 100.0% 0.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_tcp_acceptor, boost::corosio::detail::select_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::cancel() :146 3x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::detail::kqueue_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::close_socket() :149 24x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::detail::kqueue_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::close_socket() :149 4370x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_local_stream_acceptor, boost::corosio::detail::select_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::close_socket() :149 24x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_tcp_acceptor, boost::corosio::detail::select_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::close_socket() :149 324x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::detail::kqueue_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::cancel_single_op(boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>&) :205 0 0.0% 0.0% 0.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::detail::kqueue_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::cancel_single_op(boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>&) :205 9x 93.8% 70.0% 71.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_local_stream_acceptor, boost::corosio::detail::select_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::cancel_single_op(boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>&) :205 0 100.0% 0.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_tcp_acceptor, boost::corosio::detail::select_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::cancel_single_op(boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>&) :205 3x 0.0% 0.0% 71.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::detail::kqueue_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::do_cancel() :237 0 100.0% 0.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::detail::kqueue_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::do_cancel() :237 3x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_local_stream_acceptor, boost::corosio::detail::select_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::do_cancel() :237 0 100.0% 0.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_tcp_acceptor, boost::corosio::detail::select_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::do_cancel() :237 3x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::detail::kqueue_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::do_close_socket() :252 24x 96.4% 61.1% 75.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::detail::kqueue_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::do_close_socket() :252 4370x 100.0% 87.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_local_stream_acceptor, boost::corosio::detail::select_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::do_close_socket() :252 24x 100.0% 75.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_tcp_acceptor, boost::corosio::detail::select_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::do_close_socket() :252 324x 100.0% 87.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::detail::kqueue_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::do_release_socket() :302 0 0.0% 0.0% 0.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_local_stream_acceptor, boost::corosio::detail::select_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::do_release_socket() :302 0 100.0% 0.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::detail::kqueue_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::do_bind(boost::corosio::local_endpoint const&) :355 6x 100.0% 75.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::detail::kqueue_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::do_bind(boost::corosio::endpoint const&) :355 1090x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_local_stream_acceptor, boost::corosio::detail::select_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::do_bind(boost::corosio::local_endpoint const&) :355 6x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_tcp_acceptor, boost::corosio::detail::select_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::do_bind(boost::corosio::endpoint const&) :355 78x 100.0% 100.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::detail::kqueue_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_local_stream_socket, boost::corosio::detail::kqueue_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::do_listen(int) :382 2x 83.3% 50.0% 75.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::detail::kqueue_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::kqueue_traits, boost::corosio::detail::kqueue_tcp_socket, boost::corosio::detail::kqueue_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::do_listen(int) :382 1079x 100.0% 75.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_local_stream_acceptor, boost::corosio::detail::select_local_stream_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_local_stream_socket, boost::corosio::detail::select_local_stream_acceptor, boost::corosio::local_endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::local_stream_acceptor::implementation, boost::corosio::local_endpoint>::do_listen(int) :382 2x 100.0% 75.0% boost::corosio::detail::reactor_acceptor<boost::corosio::detail::select_tcp_acceptor, boost::corosio::detail::select_tcp_acceptor_service, boost::corosio::detail::reactor_stream_base_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_stream_accept_op<boost::corosio::detail::select_traits, boost::corosio::detail::select_tcp_socket, boost::corosio::detail::select_tcp_acceptor, boost::corosio::endpoint>, boost::corosio::detail::reactor_descriptor_state, boost::corosio::tcp_acceptor::implementation, boost::corosio::endpoint>::do_listen(int) :382 69x 100.0% 75.0%
Line Branch 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_ACCEPTOR_HPP
11 #define BOOST_COROSIO_NATIVE_DETAIL_REACTOR_REACTOR_ACCEPTOR_HPP
12
13 #include <boost/corosio/tcp_acceptor.hpp>
14 #include <boost/corosio/detail/intrusive.hpp>
15 #include <boost/corosio/native/detail/reactor/reactor_op_base.hpp>
16 #include <boost/corosio/native/detail/make_err.hpp>
17 #include <boost/corosio/native/detail/endpoint_convert.hpp>
18
19 #include <memory>
20 #include <mutex>
21 #include <utility>
22
23 #include <errno.h>
24 #include <netinet/in.h>
25 #include <sys/socket.h>
26 #include <unistd.h>
27
28 namespace boost::corosio::detail {
29
30 /** CRTP base for reactor-backed acceptor implementations.
31
32 Provides shared data members, trivial virtual overrides, and
33 non-virtual helper methods for cancellation and close. Concrete
34 backends inherit and add `cancel()`, `close_socket()`, and
35 `accept()` overrides that delegate to the `do_*` helpers.
36
37 @tparam Derived The concrete acceptor type (CRTP).
38 @tparam Service The backend's acceptor service type.
39 @tparam Op The backend's base op type.
40 @tparam AcceptOp The backend's accept op type.
41 @tparam DescState The backend's descriptor_state type.
42 @tparam ImplBase The public vtable base
43 (tcp_acceptor::implementation or
44 local_stream_acceptor::implementation).
45 @tparam Endpoint The endpoint type (endpoint or local_endpoint).
46 */
47 template<
48 class Derived,
49 class Service,
50 class Op,
51 class AcceptOp,
52 class DescState,
53 class ImplBase = tcp_acceptor::implementation,
54 class Endpoint = endpoint>
55 class reactor_acceptor
56 : public ImplBase
57 , public std::enable_shared_from_this<Derived>
58 , public intrusive_list<Derived>::node
59 {
60 friend Derived;
61
62 protected:
63 // NOLINTNEXTLINE(bugprone-crtp-constructor-accessibility)
64 2378x explicit reactor_acceptor(Service& svc) noexcept : svc_(svc) {}
65
66 protected:
67 Service& svc_;
68 1189x int fd_ = -1;
69 Endpoint local_endpoint_;
70
71 public:
72 /// Pending accept operation slot.
73 AcceptOp acc_;
74
75 /// Per-descriptor state for persistent reactor registration.
76 DescState desc_state_;
77
78 1189x ~reactor_acceptor() override = default;
79
80 /// Return the underlying file descriptor.
81 int native_handle() const noexcept
82 {
83 return fd_;
84 }
85
86 /// Return the cached local endpoint.
87 8387x Endpoint local_endpoint() const noexcept override
88 {
89 8387x return local_endpoint_;
90 }
91
92 /// Return true if the acceptor has an open file descriptor.
93 15457x bool is_open() const noexcept override
94 {
95 15457x return fd_ >= 0;
96 }
97
98 /// Set a socket option.
99 1165x std::error_code set_option(
100 int level,
101 int optname,
102 void const* data,
103 std::size_t size) noexcept override
104 {
105
4/16
✓ Branch 0 taken 77 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 77 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1088 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1088 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
1165x if (::setsockopt(
106 1165x fd_, level, optname, data, static_cast<socklen_t>(size)) != 0)
107 return make_err(errno);
108 1165x return {};
109 1165x }
110
111 /// Get a socket option.
112 std::error_code
113 get_option(int level, int optname, void* data, std::size_t* size)
114 const noexcept override
115 {
116 socklen_t len = static_cast<socklen_t>(*size);
117 if (::getsockopt(fd_, level, optname, data, &len) != 0)
118 return make_err(errno);
119 *size = static_cast<std::size_t>(len);
120 return {};
121 }
122
123 /// Cache the local endpoint.
124 1172x void set_local_endpoint(Endpoint ep) noexcept
125 {
126 1172x local_endpoint_ = std::move(ep);
127 1172x }
128
129 /// Assign the fd and initialize descriptor state for the acceptor.
130 1182x void init_acceptor_fd(int fd) noexcept
131 {
132 1182x fd_ = fd;
133 1182x desc_state_.fd = fd;
134 {
135
4/8
✓ Branch 0 taken 79 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1091 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 6 times.
✗ Branch 7 not taken.
1182x std::lock_guard lock(desc_state_.mutex);
136 1182x desc_state_.read_op = nullptr;
137 1182x }
138 1182x }
139
140 /// Return a reference to the owning service.
141 7235x Service& service() noexcept
142 {
143 7235x return svc_;
144 }
145
146 6x void cancel() noexcept override { do_cancel(); }
147
148 /// Close the acceptor (non-virtual, called by the service).
149 4742x void close_socket() noexcept { do_close_socket(); }
150
151 /** Cancel a single pending operation.
152
153 Claims the operation from the read_op descriptor slot
154 under the mutex and posts it to the scheduler as cancelled.
155
156 @param op The operation to cancel.
157 */
158 void cancel_single_op(Op& op) noexcept;
159
160 /** Cancel the pending accept operation. */
161 void do_cancel() noexcept;
162
163 /** Close the acceptor and cancel pending operations.
164
165 Invoked by the derived class's close_socket(). The
166 derived class may add backend-specific cleanup after
167 calling this method.
168 */
169 void do_close_socket() noexcept;
170
171 /** Release the acceptor without closing the fd. */
172 native_handle_type do_release_socket() noexcept;
173
174 /** Bind the acceptor socket to an endpoint.
175
176 Caches the resolved local endpoint (including ephemeral
177 port) after a successful bind.
178
179 @param ep The endpoint to bind to.
180 @return The error code from bind(), or success.
181 */
182 std::error_code do_bind(Endpoint const& ep);
183
184 /** Start listening on the acceptor socket.
185
186 Registers the file descriptor with the reactor after
187 a successful listen() call.
188
189 @param backlog The listen backlog.
190 @return The error code from listen(), or success.
191 */
192 std::error_code do_listen(int backlog);
193 };
194
195 template<
196 class Derived,
197 class Service,
198 class Op,
199 class AcceptOp,
200 class DescState,
201 class ImplBase,
202 class Endpoint>
203 void
204 reactor_acceptor<Derived, Service, Op, AcceptOp, DescState, ImplBase, Endpoint>::
205 12x cancel_single_op(Op& op) noexcept
206 {
207 12x auto self = this->weak_from_this().lock();
208
2/8
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
12x if (!self)
209 return;
210
211 12x op.request_cancel();
212
213 12x reactor_op_base* claimed = nullptr;
214 {
215
2/8
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
12x std::lock_guard lock(desc_state_.mutex);
216
4/8
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 1 time.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 7 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
12x if (desc_state_.read_op == &op)
217 8x claimed = std::exchange(desc_state_.read_op, nullptr);
218 12x }
219
4/8
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 7 times.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
12x if (claimed)
220 {
221 8x op.impl_ptr = self;
222
2/8
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 2 taken 7 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
8x svc_.post(&op);
223 8x svc_.work_finished();
224 8x }
225 12x }
226
227 template<
228 class Derived,
229 class Service,
230 class Op,
231 class AcceptOp,
232 class DescState,
233 class ImplBase,
234 class Endpoint>
235 void
236 reactor_acceptor<Derived, Service, Op, AcceptOp, DescState, ImplBase, Endpoint>::
237 6x do_cancel() noexcept
238 {
239 6x cancel_single_op(acc_);
240 6x }
241
242 template<
243 class Derived,
244 class Service,
245 class Op,
246 class AcceptOp,
247 class DescState,
248 class ImplBase,
249 class Endpoint>
250 void
251 reactor_acceptor<Derived, Service, Op, AcceptOp, DescState, ImplBase, Endpoint>::
252 4742x do_close_socket() noexcept
253 {
254 4742x auto self = this->weak_from_this().lock();
255
4/8
✗ Branch 0 not taken.
✓ Branch 1 taken 324 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 24 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 4370 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 24 times.
4742x if (self)
256 {
257 4742x acc_.request_cancel();
258
259 4742x reactor_op_base* claimed = nullptr;
260 {
261
4/8
✓ Branch 0 taken 324 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 24 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 4370 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 24 times.
✗ Branch 7 not taken.
4742x std::lock_guard lock(desc_state_.mutex);
262 4742x claimed = std::exchange(desc_state_.read_op, nullptr);
263 4742x desc_state_.read_ready = false;
264 4742x desc_state_.write_ready = false;
265
266
4/8
✓ Branch 0 taken 324 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 24 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 4370 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 24 times.
✗ Branch 7 not taken.
4742x if (desc_state_.is_enqueued_.load(std::memory_order_acquire))
267 desc_state_.impl_ref_ = self;
268 4742x }
269
270
6/8
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 322 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 24 times.
✓ Branch 4 taken 2 times.
✓ Branch 5 taken 4368 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 24 times.
4742x if (claimed)
271 {
272 4x acc_.impl_ptr = self;
273
2/8
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
4x svc_.post(&acc_);
274 4x svc_.work_finished();
275 4x }
276 4742x }
277
278
8/8
✓ Branch 0 taken 79 times.
✓ Branch 1 taken 245 times.
✓ Branch 2 taken 6 times.
✓ Branch 3 taken 18 times.
✓ Branch 4 taken 1091 times.
✓ Branch 5 taken 3279 times.
✓ Branch 6 taken 6 times.
✓ Branch 7 taken 18 times.
4742x if (fd_ >= 0)
279 {
280
8/8
✓ Branch 0 taken 69 times.
✓ Branch 1 taken 10 times.
✓ Branch 2 taken 2 times.
✓ Branch 3 taken 4 times.
✓ Branch 4 taken 1079 times.
✓ Branch 5 taken 12 times.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 4 times.
1182x if (desc_state_.registered_events != 0)
281
4/8
✓ Branch 0 taken 69 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1079 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
1152x svc_.scheduler().deregister_descriptor(fd_);
282
4/8
✓ Branch 0 taken 79 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 6 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1091 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 6 times.
✗ Branch 7 not taken.
1182x ::close(fd_);
283 1182x fd_ = -1;
284 1182x }
285
286 4742x desc_state_.fd = -1;
287 4742x desc_state_.registered_events = 0;
288
289 4742x local_endpoint_ = Endpoint{};
290 4742x }
291
292 template<
293 class Derived,
294 class Service,
295 class Op,
296 class AcceptOp,
297 class DescState,
298 class ImplBase,
299 class Endpoint>
300 native_handle_type
301 reactor_acceptor<Derived, Service, Op, AcceptOp, DescState, ImplBase, Endpoint>::
302 do_release_socket() noexcept
303 {
304 auto self = this->weak_from_this().lock();
305 if (self)
306 {
307 acc_.request_cancel();
308
309 reactor_op_base* claimed = nullptr;
310 {
311 std::lock_guard lock(desc_state_.mutex);
312 claimed = std::exchange(desc_state_.read_op, nullptr);
313 desc_state_.read_ready = false;
314 desc_state_.write_ready = false;
315
316 if (desc_state_.is_enqueued_.load(std::memory_order_acquire))
317 desc_state_.impl_ref_ = self;
318 }
319
320 if (claimed)
321 {
322 acc_.impl_ptr = self;
323 svc_.post(&acc_);
324 svc_.work_finished();
325 }
326 }
327
328 native_handle_type released = fd_;
329
330 if (fd_ >= 0)
331 {
332 if (desc_state_.registered_events != 0)
333 svc_.scheduler().deregister_descriptor(fd_);
334 fd_ = -1;
335 }
336
337 desc_state_.fd = -1;
338 desc_state_.registered_events = 0;
339
340 local_endpoint_ = Endpoint{};
341
342 return released;
343 }
344
345 template<
346 class Derived,
347 class Service,
348 class Op,
349 class AcceptOp,
350 class DescState,
351 class ImplBase,
352 class Endpoint>
353 std::error_code
354 reactor_acceptor<Derived, Service, Op, AcceptOp, DescState, ImplBase, Endpoint>::
355 1180x do_bind(Endpoint const& ep)
356 {
357 1180x sockaddr_storage storage{};
358 1180x socklen_t addrlen = to_sockaddr(ep, storage);
359
8/8
✓ Branch 0 taken 76 times.
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 5 times.
✓ Branch 3 taken 1 time.
✓ Branch 4 taken 1086 times.
✓ Branch 5 taken 4 times.
✓ Branch 6 taken 5 times.
✓ Branch 7 taken 1 time.
1180x if (::bind(fd_, reinterpret_cast<sockaddr*>(&storage), addrlen) < 0)
360 8x return make_err(errno);
361
362 // Cache local endpoint (resolves ephemeral port / path)
363 1172x sockaddr_storage local{};
364 1172x socklen_t local_len = sizeof(local);
365
4/8
✗ Branch 0 not taken.
✓ Branch 1 taken 76 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 5 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1086 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 5 times.
1172x if (::getsockname(fd_, reinterpret_cast<sockaddr*>(&local), &local_len) ==
366 0)
367 1172x set_local_endpoint(from_sockaddr_as(local, local_len, Endpoint{}));
368
369 1172x return {};
370 1180x }
371
372 template<
373 class Derived,
374 class Service,
375 class Op,
376 class AcceptOp,
377 class DescState,
378 class ImplBase,
379 class Endpoint>
380 std::error_code
381 reactor_acceptor<Derived, Service, Op, AcceptOp, DescState, ImplBase, Endpoint>::
382 1152x do_listen(int backlog)
383 {
384
4/8
✓ Branch 0 taken 69 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1079 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
1152x if (::listen(fd_, backlog) < 0)
385 return make_err(errno);
386
387 1152x svc_.scheduler().register_descriptor(fd_, &desc_state_);
388 1152x return {};
389 1152x }
390
391 } // namespace boost::corosio::detail
392
393 #endif // BOOST_COROSIO_NATIVE_DETAIL_REACTOR_REACTOR_ACCEPTOR_HPP
394