include/boost/capy/when_all.hpp

87.4% Lines (1583/1812) 91.5% List of functions (493/539) 77.3% Branches (231/299)
f(x) Functions (539)
Function Calls Lines Branches Blocks
boost::capy::detail::result_holder<boost::capy::io_result<> >::set(boost::capy::io_result<>) :43 0 100.0% boost::capy::detail::result_holder<boost::capy::io_result<unsigned long> >::set(boost::capy::io_result<unsigned long>) :43 0 100.0% boost::capy::detail::result_holder<int>::set(int) :43 0 100.0% boost::capy::detail::result_holder<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::set(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) :43 0 100.0% boost::capy::detail::result_holder<boost::capy::io_result<> >::get() && :48 0 100.0% boost::capy::detail::result_holder<boost::capy::io_result<unsigned long> >::get() && :48 0 100.0% boost::capy::detail::result_holder<int>::get() && :48 0 100.0% boost::capy::detail::result_holder<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::get() && :48 0 100.0% boost::capy::detail::result_holder<void>::get() && :59 0 100.0% boost::capy::detail::when_all_state<boost::capy::io_result<>, boost::capy::io_result<> >::stop_callback_fn::operator()() const :91 0 0.0% boost::capy::detail::when_all_state<boost::capy::io_result<>, int>::stop_callback_fn::operator()() const :91 0 0.0% boost::capy::detail::when_all_state<boost::capy::io_result<>, void>::stop_callback_fn::operator()() const :91 0 0.0% boost::capy::detail::when_all_state<int, boost::capy::io_result<unsigned long> >::stop_callback_fn::operator()() const :91 0 0.0% boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>::stop_callback_fn::operator()() const :91 0 0.0% boost::capy::detail::when_all_state<int, int, int>::stop_callback_fn::operator()() const :91 0 0.0% boost::capy::detail::when_all_state<int, int>::stop_callback_fn::operator()() const :91 0 100.0% boost::capy::detail::when_all_state<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::stop_callback_fn::operator()() const :91 0 0.0% boost::capy::detail::when_all_state<int, void, int>::stop_callback_fn::operator()() const :91 0 0.0% boost::capy::detail::when_all_state<int, void>::stop_callback_fn::operator()() const :91 0 0.0% boost::capy::detail::when_all_state<int>::stop_callback_fn::operator()() const :91 0 0.0% boost::capy::detail::when_all_state<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::stop_callback_fn::operator()() const :91 0 0.0% boost::capy::detail::when_all_state<void, int>::stop_callback_fn::operator()() const :91 0 100.0% boost::capy::detail::when_all_state<void, void, void>::stop_callback_fn::operator()() const :91 0 0.0% boost::capy::detail::when_all_state<void, void>::stop_callback_fn::operator()() const :91 0 100.0% boost::capy::detail::when_all_state<boost::capy::io_result<>, boost::capy::io_result<> >::when_all_state() :100 0 100.0% 100.0% boost::capy::detail::when_all_state<boost::capy::io_result<>, int>::when_all_state() :100 0 100.0% 100.0% boost::capy::detail::when_all_state<boost::capy::io_result<>, void>::when_all_state() :100 0 100.0% 100.0% boost::capy::detail::when_all_state<int, boost::capy::io_result<unsigned long> >::when_all_state() :100 0 100.0% 100.0% boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>::when_all_state() :100 0 100.0% 100.0% boost::capy::detail::when_all_state<int, int, int>::when_all_state() :100 0 100.0% 100.0% boost::capy::detail::when_all_state<int, int>::when_all_state() :100 0 100.0% 100.0% boost::capy::detail::when_all_state<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::when_all_state() :100 0 100.0% 100.0% boost::capy::detail::when_all_state<int, void, int>::when_all_state() :100 0 100.0% 100.0% boost::capy::detail::when_all_state<int, void>::when_all_state() :100 0 100.0% 100.0% boost::capy::detail::when_all_state<int>::when_all_state() :100 0 100.0% 100.0% boost::capy::detail::when_all_state<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::when_all_state() :100 0 100.0% 100.0% boost::capy::detail::when_all_state<void, int>::when_all_state() :100 0 100.0% 100.0% boost::capy::detail::when_all_state<void, void, void>::when_all_state() :100 0 100.0% 100.0% boost::capy::detail::when_all_state<void, void>::when_all_state() :100 0 100.0% 100.0% boost::capy::detail::when_all_state<boost::capy::io_result<>, boost::capy::io_result<> >::capture_exception(std::__exception_ptr::exception_ptr) :109 0 0.0% 0.0% boost::capy::detail::when_all_state<boost::capy::io_result<>, int>::capture_exception(std::__exception_ptr::exception_ptr) :109 0 0.0% 0.0% boost::capy::detail::when_all_state<boost::capy::io_result<>, void>::capture_exception(std::__exception_ptr::exception_ptr) :109 0 0.0% 0.0% boost::capy::detail::when_all_state<int, boost::capy::io_result<unsigned long> >::capture_exception(std::__exception_ptr::exception_ptr) :109 0 0.0% 0.0% boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>::capture_exception(std::__exception_ptr::exception_ptr) :109 0 0.0% 0.0% boost::capy::detail::when_all_state<int, int, int>::capture_exception(std::__exception_ptr::exception_ptr) :109 0 100.0% 100.0% boost::capy::detail::when_all_state<int, int>::capture_exception(std::__exception_ptr::exception_ptr) :109 0 100.0% 100.0% boost::capy::detail::when_all_state<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::capture_exception(std::__exception_ptr::exception_ptr) :109 0 0.0% 0.0% boost::capy::detail::when_all_state<int, void, int>::capture_exception(std::__exception_ptr::exception_ptr) :109 0 0.0% 0.0% boost::capy::detail::when_all_state<int, void>::capture_exception(std::__exception_ptr::exception_ptr) :109 0 100.0% 50.0% boost::capy::detail::when_all_state<int>::capture_exception(std::__exception_ptr::exception_ptr) :109 0 0.0% 0.0% boost::capy::detail::when_all_state<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::capture_exception(std::__exception_ptr::exception_ptr) :109 0 0.0% 0.0% boost::capy::detail::when_all_state<void, int>::capture_exception(std::__exception_ptr::exception_ptr) :109 0 0.0% 0.0% boost::capy::detail::when_all_state<void, void, void>::capture_exception(std::__exception_ptr::exception_ptr) :109 0 0.0% 0.0% boost::capy::detail::when_all_state<void, void>::capture_exception(std::__exception_ptr::exception_ptr) :109 0 100.0% 50.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, boost::capy::io_result<> >::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, int>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, void>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<unsigned long>, int, boost::capy::io_result<unsigned long> >::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<int, boost::capy::io_result<>, int>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<int, int, boost::capy::io_result<unsigned long> >::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<int, int, int, int, int, int, int, int, int>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<int, int, int, int>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<int, int, int>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<int, int, void, int>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<int, int, void>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<int, int>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<int, void, int>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<void, boost::capy::io_result<>, void>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<void, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<void, int, void, int>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<void, int, void>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<void, void, int>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<void, void, void, void>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<void, void, void>::promise_type::get_return_object() :132 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, boost::capy::io_result<> >::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, int>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, void>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<unsigned long>, int, boost::capy::io_result<unsigned long> >::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<int, boost::capy::io_result<>, int>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<int, int, boost::capy::io_result<unsigned long> >::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<int, int, int, int, int, int, int, int, int>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<int, int, int, int>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<int, int, int>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<int, int, void, int>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<int, int, void>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<int, int>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<int, void, int>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<void, boost::capy::io_result<>, void>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<void, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<void, int, void, int>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<void, int, void>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<void, void, int>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<void, void, void, void>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<void, void, void>::promise_type::initial_suspend() :137 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, boost::capy::io_result<> >::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, int>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, void>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<unsigned long>, int, boost::capy::io_result<unsigned long> >::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<int, boost::capy::io_result<>, int>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<int, int, boost::capy::io_result<unsigned long> >::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<int, int, int, int, int, int, int, int, int>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<int, int, int, int>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<int, int, int>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<int, int, void, int>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<int, int, void>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<int, int>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<int, void, int>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<void, boost::capy::io_result<>, void>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<void, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<void, int, void, int>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<void, int, void>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<void, void, int>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<void, void, void, void>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<void, void, void>::promise_type::final_suspend() :142 0 100.0% boost::capy::detail::when_all_runner<int, int, int>::promise_type::final_suspend()::awaiter::await_ready() const :148 0 100.0% boost::capy::detail::when_all_runner<void, void, void>::promise_type::final_suspend()::awaiter::await_ready() const :148 0 100.0% boost::capy::detail::when_all_runner<int, int, int>::promise_type::final_suspend()::awaiter::await_suspend(std::__n4861::coroutine_handle<void>) :153 0 100.0% 100.0% boost::capy::detail::when_all_runner<void, void, void>::promise_type::final_suspend()::awaiter::await_suspend(std::__n4861::coroutine_handle<void>) :153 0 100.0% 100.0% boost::capy::detail::when_all_runner<int, int, int>::promise_type::final_suspend()::awaiter::await_resume() const :170 0 33.3% boost::capy::detail::when_all_runner<void, void, void>::promise_type::final_suspend()::awaiter::await_resume() const :170 0 33.3% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, boost::capy::io_result<> >::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, int>::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, void>::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<unsigned long>, int, boost::capy::io_result<unsigned long> >::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<int, boost::capy::io_result<>, int>::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<int, int, boost::capy::io_result<unsigned long> >::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<int, int, int, int, int, int, int, int, int>::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<int, int, int, int>::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<int, int, int>::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<int, int, void, int>::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<int, int, void>::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<int, int>::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<int, void, int>::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<void, boost::capy::io_result<>, void>::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<void, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<void, int, void, int>::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<void, int, void>::promise_type::return_void() :177 0 0.0% boost::capy::detail::when_all_runner<void, void, int>::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<void, void, void, void>::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<void, void, void>::promise_type::return_void() :177 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, boost::capy::io_result<> >::promise_type::unhandled_exception() :181 0 0.0% boost::capy::detail::when_all_runner<boost::capy::io_result<unsigned long>, int, boost::capy::io_result<unsigned long> >::promise_type::unhandled_exception() :181 0 0.0% boost::capy::detail::when_all_runner<int, boost::capy::io_result<>, int>::promise_type::unhandled_exception() :181 0 0.0% boost::capy::detail::when_all_runner<int, int, boost::capy::io_result<unsigned long> >::promise_type::unhandled_exception() :181 0 0.0% boost::capy::detail::when_all_runner<int, int, int, int, int, int, int, int, int>::promise_type::unhandled_exception() :181 0 0.0% boost::capy::detail::when_all_runner<int, int, int, int>::promise_type::unhandled_exception() :181 0 100.0% boost::capy::detail::when_all_runner<int, int, int>::promise_type::unhandled_exception() :181 0 100.0% boost::capy::detail::when_all_runner<int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::unhandled_exception() :181 0 0.0% boost::capy::detail::when_all_runner<int, int, void, int>::promise_type::unhandled_exception() :181 0 0.0% boost::capy::detail::when_all_runner<int, int, void>::promise_type::unhandled_exception() :181 0 0.0% boost::capy::detail::when_all_runner<int, int>::promise_type::unhandled_exception() :181 0 0.0% boost::capy::detail::when_all_runner<int, void, int>::promise_type::unhandled_exception() :181 0 0.0% boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::unhandled_exception() :181 0 0.0% boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type::unhandled_exception() :181 0 0.0% boost::capy::detail::when_all_runner<void, boost::capy::io_result<>, void>::promise_type::unhandled_exception() :181 0 0.0% boost::capy::detail::when_all_runner<void, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::unhandled_exception() :181 0 0.0% boost::capy::detail::when_all_runner<void, int, void, int>::promise_type::unhandled_exception() :181 0 0.0% boost::capy::detail::when_all_runner<void, int, void>::promise_type::unhandled_exception() :181 0 100.0% boost::capy::detail::when_all_runner<void, void, void, void>::promise_type::unhandled_exception() :181 0 0.0% boost::capy::detail::when_all_runner<void, void, void>::promise_type::unhandled_exception() :181 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, boost::capy::io_result<> >::promise_type::transform_awaiter<boost::capy::task<boost::capy::io_result<> > >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, int>::promise_type::transform_awaiter<boost::capy::async_event::wait_awaiter>::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, void>::promise_type::transform_awaiter<boost::capy::async_event::wait_awaiter>::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<unsigned long>, int, boost::capy::io_result<unsigned long> >::promise_type::transform_awaiter<boost::capy::task<boost::capy::io_result<unsigned long> > >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<int, boost::capy::io_result<>, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<int, int, boost::capy::io_result<unsigned long> >::promise_type::transform_awaiter<boost::capy::task<int> >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<int, int, int, int, int, int, int, int, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<int, int, int, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<int, int, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::transform_awaiter<boost::capy::task<int> >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<int, int, void, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<int, int, void>::promise_type::transform_awaiter<boost::capy::task<int> >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<int, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<int, void, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::transform_awaiter<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type::transform_awaiter<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<void, boost::capy::io_result<>, void>::promise_type::transform_awaiter<boost::capy::task<void> >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<void, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::transform_awaiter<boost::capy::task<void> >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<void, int, void, int>::promise_type::transform_awaiter<boost::capy::task<void> >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<void, int, void>::promise_type::transform_awaiter<boost::capy::task<void> >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<void, void, int>::promise_type::transform_awaiter<boost::capy::stop_only_awaitable>::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<void, void, void, void>::promise_type::transform_awaiter<boost::capy::task<void> >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<void, void, void>::promise_type::transform_awaiter<boost::capy::stop_only_awaitable>::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<void, void, void>::promise_type::transform_awaiter<boost::capy::task<void> >::await_ready() :194 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, boost::capy::io_result<> >::promise_type::transform_awaiter<boost::capy::task<boost::capy::io_result<> > >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, int>::promise_type::transform_awaiter<boost::capy::async_event::wait_awaiter>::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, void>::promise_type::transform_awaiter<boost::capy::async_event::wait_awaiter>::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<unsigned long>, int, boost::capy::io_result<unsigned long> >::promise_type::transform_awaiter<boost::capy::task<boost::capy::io_result<unsigned long> > >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<int, boost::capy::io_result<>, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<int, int, boost::capy::io_result<unsigned long> >::promise_type::transform_awaiter<boost::capy::task<int> >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<int, int, int, int, int, int, int, int, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<int, int, int, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<int, int, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::transform_awaiter<boost::capy::task<int> >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<int, int, void, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<int, int, void>::promise_type::transform_awaiter<boost::capy::task<int> >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<int, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<int, void, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::transform_awaiter<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type::transform_awaiter<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<void, boost::capy::io_result<>, void>::promise_type::transform_awaiter<boost::capy::task<void> >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<void, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::transform_awaiter<boost::capy::task<void> >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<void, int, void, int>::promise_type::transform_awaiter<boost::capy::task<void> >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<void, int, void>::promise_type::transform_awaiter<boost::capy::task<void> >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<void, void, int>::promise_type::transform_awaiter<boost::capy::stop_only_awaitable>::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<void, void, void, void>::promise_type::transform_awaiter<boost::capy::task<void> >::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<void, void, void>::promise_type::transform_awaiter<boost::capy::stop_only_awaitable>::await_resume() :199 0 100.0% boost::capy::detail::when_all_runner<void, void, void>::promise_type::transform_awaiter<boost::capy::task<void> >::await_resume() :199 0 100.0% auto boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, boost::capy::io_result<> >::promise_type::transform_awaiter<boost::capy::task<boost::capy::io_result<> > >::await_suspend<boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, boost::capy::io_result<> >::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, boost::capy::io_result<> >::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, int>::promise_type::transform_awaiter<boost::capy::async_event::wait_awaiter>::await_suspend<boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, int>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, int>::promise_type>) :205 0 0.0% auto boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, void>::promise_type::transform_awaiter<boost::capy::async_event::wait_awaiter>::await_suspend<boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, void>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, void>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<boost::capy::io_result<unsigned long>, int, boost::capy::io_result<unsigned long> >::promise_type::transform_awaiter<boost::capy::task<boost::capy::io_result<unsigned long> > >::await_suspend<boost::capy::detail::when_all_runner<boost::capy::io_result<unsigned long>, int, boost::capy::io_result<unsigned long> >::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<boost::capy::io_result<unsigned long>, int, boost::capy::io_result<unsigned long> >::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<int, boost::capy::io_result<>, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_suspend<boost::capy::detail::when_all_runner<int, boost::capy::io_result<>, int>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, boost::capy::io_result<>, int>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<int, int, boost::capy::io_result<unsigned long> >::promise_type::transform_awaiter<boost::capy::task<int> >::await_suspend<boost::capy::detail::when_all_runner<int, int, boost::capy::io_result<unsigned long> >::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, int, boost::capy::io_result<unsigned long> >::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<int, int, int, int, int, int, int, int, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_suspend<boost::capy::detail::when_all_runner<int, int, int, int, int, int, int, int, int>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, int, int, int, int, int, int, int, int>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<int, int, int, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_suspend<boost::capy::detail::when_all_runner<int, int, int, int>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, int, int, int>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<int, int, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_suspend<boost::capy::detail::when_all_runner<int, int, int>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, int, int>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::transform_awaiter<boost::capy::task<int> >::await_suspend<boost::capy::detail::when_all_runner<int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<int, int, void, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_suspend<boost::capy::detail::when_all_runner<int, int, void, int>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, int, void, int>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<int, int, void>::promise_type::transform_awaiter<boost::capy::task<int> >::await_suspend<boost::capy::detail::when_all_runner<int, int, void>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, int, void>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<int, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_suspend<boost::capy::detail::when_all_runner<int, int>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, int>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<int, void, int>::promise_type::transform_awaiter<boost::capy::task<int> >::await_suspend<boost::capy::detail::when_all_runner<int, void, int>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, void, int>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::transform_awaiter<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::await_suspend<boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type::transform_awaiter<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::await_suspend<boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<void, boost::capy::io_result<>, void>::promise_type::transform_awaiter<boost::capy::task<void> >::await_suspend<boost::capy::detail::when_all_runner<void, boost::capy::io_result<>, void>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<void, boost::capy::io_result<>, void>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<void, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::transform_awaiter<boost::capy::task<void> >::await_suspend<boost::capy::detail::when_all_runner<void, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<void, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<void, int, void, int>::promise_type::transform_awaiter<boost::capy::task<void> >::await_suspend<boost::capy::detail::when_all_runner<void, int, void, int>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<void, int, void, int>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<void, int, void>::promise_type::transform_awaiter<boost::capy::task<void> >::await_suspend<boost::capy::detail::when_all_runner<void, int, void>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<void, int, void>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<void, void, int>::promise_type::transform_awaiter<boost::capy::stop_only_awaitable>::await_suspend<boost::capy::detail::when_all_runner<void, void, int>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<void, void, int>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<void, void, void, void>::promise_type::transform_awaiter<boost::capy::task<void> >::await_suspend<boost::capy::detail::when_all_runner<void, void, void, void>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<void, void, void, void>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<void, void, void>::promise_type::transform_awaiter<boost::capy::stop_only_awaitable>::await_suspend<boost::capy::detail::when_all_runner<void, void, void>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<void, void, void>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<void, void, void>::promise_type::transform_awaiter<boost::capy::task<void> >::await_suspend<boost::capy::detail::when_all_runner<void, void, void>::promise_type>(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<void, void, void>::promise_type>) :205 0 100.0% auto boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, boost::capy::io_result<> >::promise_type::await_transform<boost::capy::task<boost::capy::io_result<> > >(boost::capy::task<boost::capy::io_result<> >&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, int>::promise_type::await_transform<boost::capy::async_event::wait_awaiter>(boost::capy::async_event::wait_awaiter&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, void>::promise_type::await_transform<boost::capy::async_event::wait_awaiter>(boost::capy::async_event::wait_awaiter&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<boost::capy::io_result<unsigned long>, int, boost::capy::io_result<unsigned long> >::promise_type::await_transform<boost::capy::task<boost::capy::io_result<unsigned long> > >(boost::capy::task<boost::capy::io_result<unsigned long> >&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<int, boost::capy::io_result<>, int>::promise_type::await_transform<boost::capy::task<int> >(boost::capy::task<int>&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<int, int, boost::capy::io_result<unsigned long> >::promise_type::await_transform<boost::capy::task<int> >(boost::capy::task<int>&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<int, int, int, int, int, int, int, int, int>::promise_type::await_transform<boost::capy::task<int> >(boost::capy::task<int>&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<int, int, int, int>::promise_type::await_transform<boost::capy::task<int> >(boost::capy::task<int>&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<int, int, int>::promise_type::await_transform<boost::capy::task<int> >(boost::capy::task<int>&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::await_transform<boost::capy::task<int> >(boost::capy::task<int>&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<int, int, void, int>::promise_type::await_transform<boost::capy::task<int> >(boost::capy::task<int>&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<int, int, void>::promise_type::await_transform<boost::capy::task<int> >(boost::capy::task<int>&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<int, int>::promise_type::await_transform<boost::capy::task<int> >(boost::capy::task<int>&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<int, void, int>::promise_type::await_transform<boost::capy::task<int> >(boost::capy::task<int>&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::await_transform<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type::await_transform<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<void, boost::capy::io_result<>, void>::promise_type::await_transform<boost::capy::task<void> >(boost::capy::task<void>&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<void, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type::await_transform<boost::capy::task<void> >(boost::capy::task<void>&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<void, int, void, int>::promise_type::await_transform<boost::capy::task<void> >(boost::capy::task<void>&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<void, int, void>::promise_type::await_transform<boost::capy::task<void> >(boost::capy::task<void>&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<void, void, int>::promise_type::await_transform<boost::capy::stop_only_awaitable>(boost::capy::stop_only_awaitable&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<void, void, void, void>::promise_type::await_transform<boost::capy::task<void> >(boost::capy::task<void>&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<void, void, void>::promise_type::await_transform<boost::capy::stop_only_awaitable>(boost::capy::stop_only_awaitable&&) :216 0 100.0% auto boost::capy::detail::when_all_runner<void, void, void>::promise_type::await_transform<boost::capy::task<void> >(boost::capy::task<void>&&) :216 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, boost::capy::io_result<> >::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, boost::capy::io_result<> >::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, int>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, int>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, void>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, void>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<unsigned long>, int, boost::capy::io_result<unsigned long> >::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<boost::capy::io_result<unsigned long>, int, boost::capy::io_result<unsigned long> >::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<int, boost::capy::io_result<>, int>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, boost::capy::io_result<>, int>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<int, int, boost::capy::io_result<unsigned long> >::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, int, boost::capy::io_result<unsigned long> >::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<int, int, int, int, int, int, int, int, int>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, int, int, int, int, int, int, int, int>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<int, int, int, int>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, int, int, int>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<int, int, int>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, int, int>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<int, int, void, int>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, int, void, int>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<int, int, void>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, int, void>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<int, int>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, int>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<int, void, int>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<int, void, int>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<void, boost::capy::io_result<>, void>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<void, boost::capy::io_result<>, void>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<void, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<void, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<void, int, void, int>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<void, int, void, int>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<void, int, void>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<void, int, void>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<void, void, int>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<void, void, int>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<void, void, void, void>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<void, void, void, void>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<void, void, void>::when_all_runner(std::__n4861::coroutine_handle<boost::capy::detail::when_all_runner<void, void, void>::promise_type>) :233 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, boost::capy::io_result<> >::release() :246 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, int>::release() :246 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<>, boost::capy::io_result<>, void>::release() :246 0 100.0% boost::capy::detail::when_all_runner<boost::capy::io_result<unsigned long>, int, boost::capy::io_result<unsigned long> >::release() :246 0 100.0% boost::capy::detail::when_all_runner<int, boost::capy::io_result<>, int>::release() :246 0 100.0% boost::capy::detail::when_all_runner<int, int, boost::capy::io_result<unsigned long> >::release() :246 0 100.0% boost::capy::detail::when_all_runner<int, int, int, int, int, int, int, int, int>::release() :246 0 100.0% boost::capy::detail::when_all_runner<int, int, int, int>::release() :246 0 100.0% boost::capy::detail::when_all_runner<int, int, int>::release() :246 0 100.0% boost::capy::detail::when_all_runner<int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::release() :246 0 100.0% boost::capy::detail::when_all_runner<int, int, void, int>::release() :246 0 100.0% boost::capy::detail::when_all_runner<int, int, void>::release() :246 0 100.0% boost::capy::detail::when_all_runner<int, int>::release() :246 0 100.0% boost::capy::detail::when_all_runner<int, void, int>::release() :246 0 100.0% boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::release() :246 0 100.0% boost::capy::detail::when_all_runner<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::release() :246 0 100.0% boost::capy::detail::when_all_runner<void, boost::capy::io_result<>, void>::release() :246 0 100.0% boost::capy::detail::when_all_runner<void, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::release() :246 0 100.0% boost::capy::detail::when_all_runner<void, int, void, int>::release() :246 0 100.0% boost::capy::detail::when_all_runner<void, int, void>::release() :246 0 100.0% boost::capy::detail::when_all_runner<void, void, int>::release() :246 0 100.0% boost::capy::detail::when_all_runner<void, void, void, void>::release() :246 0 100.0% boost::capy::detail::when_all_runner<void, void, void>::release() :246 0 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::async_event::wait_awaiter>::type&>)()).await_resume)()), boost::capy::io_result<>, int> boost::capy::detail::make_when_all_runner<0ul, boost::capy::async_event::wait_awaiter, boost::capy::io_result<>, int>(boost::capy::async_event::wait_awaiter, boost::capy::detail::when_all_state<boost::capy::io_result<>, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::async_event::wait_awaiter>::type&>)()).await_resume)()), boost::capy::io_result<>, void> boost::capy::detail::make_when_all_runner<0ul, boost::capy::async_event::wait_awaiter, boost::capy::io_result<>, void>(boost::capy::async_event::wait_awaiter, boost::capy::detail::when_all_state<boost::capy::io_result<>, void>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::stop_only_awaitable>::type&>)()).await_resume)()), void, int> boost::capy::detail::make_when_all_runner<0ul, boost::capy::stop_only_awaitable, void, int>(boost::capy::stop_only_awaitable, boost::capy::detail::when_all_state<void, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::stop_only_awaitable>::type&>)()).await_resume)()), void, void> boost::capy::detail::make_when_all_runner<0ul, boost::capy::stop_only_awaitable, void, void>(boost::capy::stop_only_awaitable, boost::capy::detail::when_all_state<void, void>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::stop_only_awaitable>::type&>)()).await_resume)()), void, void> boost::capy::detail::make_when_all_runner<1ul, boost::capy::stop_only_awaitable, void, void>(boost::capy::stop_only_awaitable, boost::capy::detail::when_all_state<void, void>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<boost::capy::io_result<> > >::type&>)()).await_resume)()), boost::capy::io_result<>, boost::capy::io_result<> > boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<boost::capy::io_result<> >, boost::capy::io_result<>, boost::capy::io_result<> >(boost::capy::task<boost::capy::io_result<> >, boost::capy::detail::when_all_state<boost::capy::io_result<>, boost::capy::io_result<> >*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<boost::capy::io_result<> > >::type&>)()).await_resume)()), boost::capy::io_result<>, boost::capy::io_result<> > boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<boost::capy::io_result<> >, boost::capy::io_result<>, boost::capy::io_result<> >(boost::capy::task<boost::capy::io_result<> >, boost::capy::detail::when_all_state<boost::capy::io_result<>, boost::capy::io_result<> >*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<boost::capy::io_result<unsigned long> > >::type&>)()).await_resume)()), int, boost::capy::io_result<unsigned long> > boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<boost::capy::io_result<unsigned long> >, int, boost::capy::io_result<unsigned long> >(boost::capy::task<boost::capy::io_result<unsigned long> >, boost::capy::detail::when_all_state<int, boost::capy::io_result<unsigned long> >*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), boost::capy::io_result<>, int> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<int>, boost::capy::io_result<>, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<boost::capy::io_result<>, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, boost::capy::io_result<unsigned long> > boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<int>, int, boost::capy::io_result<unsigned long> >(boost::capy::task<int>, boost::capy::detail::when_all_state<int, boost::capy::io_result<unsigned long> >*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int, int, int, int, int, int> boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<int>, int, int, int, int, int, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int, int, int, int, int, int> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<int>, int, int, int, int, int, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int, int, int, int, int, int> boost::capy::detail::make_when_all_runner<2ul, boost::capy::task<int>, int, int, int, int, int, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int, int, int, int, int, int> boost::capy::detail::make_when_all_runner<3ul, boost::capy::task<int>, int, int, int, int, int, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int, int, int, int, int, int> boost::capy::detail::make_when_all_runner<4ul, boost::capy::task<int>, int, int, int, int, int, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int, int, int, int, int, int> boost::capy::detail::make_when_all_runner<5ul, boost::capy::task<int>, int, int, int, int, int, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int, int, int, int, int, int> boost::capy::detail::make_when_all_runner<6ul, boost::capy::task<int>, int, int, int, int, int, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int, int, int, int, int, int> boost::capy::detail::make_when_all_runner<7ul, boost::capy::task<int>, int, int, int, int, int, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int> boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<int>, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<int>, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int> boost::capy::detail::make_when_all_runner<2ul, boost::capy::task<int>, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int> boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<int>, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<int>, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void> boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<int>, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, void, int> boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<int>, int, void, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, void, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, void, int> boost::capy::detail::make_when_all_runner<2ul, boost::capy::task<int>, int, void, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, void, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, void> boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<int>, int, void>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, void>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int> boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<int>, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), void, int> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<int>, void, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<void, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)()), int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>(boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::detail::when_all_state<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)()), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::detail::when_all_state<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)()), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::detail::when_all_state<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)()), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > boost::capy::detail::make_when_all_runner<2ul, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::detail::when_all_state<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)()), boost::capy::io_result<>, void> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<void>, boost::capy::io_result<>, void>(boost::capy::task<void>, boost::capy::detail::when_all_state<boost::capy::io_result<>, void>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)()), int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void> boost::capy::detail::make_when_all_runner<2ul, boost::capy::task<void>, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>(boost::capy::task<void>, boost::capy::detail::when_all_state<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)()), int, void, int> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<void>, int, void, int>(boost::capy::task<void>, boost::capy::detail::when_all_state<int, void, int>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)()), int, void> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<void>, int, void>(boost::capy::task<void>, boost::capy::detail::when_all_state<int, void>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)()), void, void, void> boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<void>, void, void, void>(boost::capy::task<void>, boost::capy::detail::when_all_state<void, void, void>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)()), void, void, void> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<void>, void, void, void>(boost::capy::task<void>, boost::capy::detail::when_all_state<void, void, void>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)()), void, void, void> boost::capy::detail::make_when_all_runner<2ul, boost::capy::task<void>, void, void, void>(boost::capy::task<void>, boost::capy::detail::when_all_state<void, void, void>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)()), void, void> boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<void>, void, void>(boost::capy::task<void>, boost::capy::detail::when_all_state<void, void>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)()), void, void> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<void>, void, void>(boost::capy::task<void>, boost::capy::detail::when_all_state<void, void>*) :258 0 100.0% 100.0% boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<int> >::when_all_launcher(std::tuple<boost::capy::async_event::wait_awaiter, boost::capy::task<int> >*, boost::capy::detail::when_all_state<boost::capy::io_result<>, int>*) :285 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<void> >::when_all_launcher(std::tuple<boost::capy::async_event::wait_awaiter, boost::capy::task<void> >*, boost::capy::detail::when_all_state<boost::capy::io_result<>, void>*) :285 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::stop_only_awaitable>::when_all_launcher(std::tuple<boost::capy::stop_only_awaitable, boost::capy::stop_only_awaitable>*, boost::capy::detail::when_all_state<void, void>*) :285 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::task<int> >::when_all_launcher(std::tuple<boost::capy::stop_only_awaitable, boost::capy::task<int> >*, boost::capy::detail::when_all_state<void, int>*) :285 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<boost::capy::io_result<> >, boost::capy::task<boost::capy::io_result<> > >::when_all_launcher(std::tuple<boost::capy::task<boost::capy::io_result<> >, boost::capy::task<boost::capy::io_result<> > >*, boost::capy::detail::when_all_state<boost::capy::io_result<>, boost::capy::io_result<> >*) :285 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int> >::when_all_launcher(std::tuple<boost::capy::task<int> >*, boost::capy::detail::when_all_state<int>*) :285 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<boost::capy::io_result<unsigned long> > >::when_all_launcher(std::tuple<boost::capy::task<int>, boost::capy::task<boost::capy::io_result<unsigned long> > >*, boost::capy::detail::when_all_state<int, boost::capy::io_result<unsigned long> >*) :285 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int> >::when_all_launcher(std::tuple<boost::capy::task<int>, boost::capy::task<int> >*, boost::capy::detail::when_all_state<int, int>*) :285 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::when_all_launcher(std::tuple<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >*, boost::capy::detail::when_all_state<int, int, int>*) :285 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::when_all_launcher(std::tuple<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >*, boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>*) :285 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >::when_all_launcher(std::tuple<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >*, boost::capy::detail::when_all_state<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>*) :285 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void> >::when_all_launcher(std::tuple<boost::capy::task<int>, boost::capy::task<void> >*, boost::capy::detail::when_all_state<int, void>*) :285 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >::when_all_launcher(std::tuple<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >*, boost::capy::detail::when_all_state<int, void, int>*) :285 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::when_all_launcher(std::tuple<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, boost::capy::detail::when_all_state<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >*) :285 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void> >::when_all_launcher(std::tuple<boost::capy::task<void>, boost::capy::task<void> >*, boost::capy::detail::when_all_state<void, void>*) :285 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >::when_all_launcher(std::tuple<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >*, boost::capy::detail::when_all_state<void, void, void>*) :285 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<int> >::await_ready() const :293 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<void> >::await_ready() const :293 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::stop_only_awaitable>::await_ready() const :293 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::task<int> >::await_ready() const :293 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<boost::capy::io_result<> >, boost::capy::task<boost::capy::io_result<> > >::await_ready() const :293 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int> >::await_ready() const :293 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<boost::capy::io_result<unsigned long> > >::await_ready() const :293 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int> >::await_ready() const :293 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::await_ready() const :293 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::await_ready() const :293 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >::await_ready() const :293 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void> >::await_ready() const :293 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >::await_ready() const :293 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::await_ready() const :293 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void> >::await_ready() const :293 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >::await_ready() const :293 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*) :298 0 57.1% 40.0% boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*) :298 0 50.0% 25.0% boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::stop_only_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*) :298 0 92.9% 60.0% boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*) :298 0 92.9% 60.0% boost::capy::detail::when_all_launcher<boost::capy::task<boost::capy::io_result<> >, boost::capy::task<boost::capy::io_result<> > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*) :298 0 57.1% 40.0% boost::capy::detail::when_all_launcher<boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*) :298 0 57.1% 40.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<boost::capy::io_result<unsigned long> > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*) :298 0 57.1% 40.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*) :298 0 92.9% 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*) :298 0 57.1% 40.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*) :298 0 57.1% 40.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*) :298 0 57.1% 40.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*) :298 0 57.1% 40.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*) :298 0 57.1% 40.0% boost::capy::detail::when_all_launcher<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*) :298 0 57.1% 40.0% boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*) :298 0 57.1% 40.0% boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*) :298 0 57.1% 40.0% auto boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*)::{lambda<unsigned long... $N0>(std::integer_sequence<unsigned long, ($N0)...>)#1}::operator()<0ul, 1ul>(std::integer_sequence<unsigned long, 0ul, 1ul>) const :320 0 80.0% 100.0% auto boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*)::{lambda<unsigned long... $N0>(std::integer_sequence<unsigned long, ($N0)...>)#1}::operator()<0ul, 1ul>(std::integer_sequence<unsigned long, 0ul, 1ul>) const :320 0 80.0% 100.0% auto boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*)::{lambda<unsigned long... $N0>(std::integer_sequence<unsigned long, ($N0)...>)#1}::operator()<0ul, 1ul>(std::integer_sequence<unsigned long, 0ul, 1ul>) const :320 0 80.0% 100.0% boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<int> >::await_resume() const :328 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<void> >::await_resume() const :328 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::stop_only_awaitable>::await_resume() const :328 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::task<int> >::await_resume() const :328 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<boost::capy::io_result<> >, boost::capy::task<boost::capy::io_result<> > >::await_resume() const :328 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int> >::await_resume() const :328 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<boost::capy::io_result<unsigned long> > >::await_resume() const :328 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int> >::await_resume() const :328 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::await_resume() const :328 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::await_resume() const :328 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >::await_resume() const :328 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void> >::await_resume() const :328 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >::await_resume() const :328 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::await_resume() const :328 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void> >::await_resume() const :328 0 100.0% boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >::await_resume() const :328 0 100.0% void boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<int> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<void> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<void> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::stop_only_awaitable>::launch_one<0ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::stop_only_awaitable>::launch_one<1ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::task<int> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<boost::capy::io_result<> >, boost::capy::task<boost::capy::io_result<> > >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<boost::capy::io_result<> >, boost::capy::task<boost::capy::io_result<> > >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<boost::capy::io_result<unsigned long> > >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<boost::capy::io_result<unsigned long> > >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<2ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<2ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<3ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<4ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<5ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<6ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<7ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >::launch_one<2ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >::launch_one<2ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::launch_one<2ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% void boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >::launch_one<2ul>(boost::capy::executor_ref, std::stop_token) :335 0 100.0% 100.0% auto boost::capy::detail::extract_single_result<0ul, boost::capy::io_result<>, boost::capy::io_result<> >(boost::capy::detail::when_all_state<boost::capy::io_result<>, boost::capy::io_result<> >&) :355 0 100.0% auto boost::capy::detail::extract_single_result<0ul, boost::capy::io_result<>, int>(boost::capy::detail::when_all_state<boost::capy::io_result<>, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<0ul, boost::capy::io_result<>, void>(boost::capy::detail::when_all_state<boost::capy::io_result<>, void>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<0ul, int, boost::capy::io_result<unsigned long> >(boost::capy::detail::when_all_state<int, boost::capy::io_result<unsigned long> >&) :355 0 100.0% auto boost::capy::detail::extract_single_result<0ul, int, int, int, int, int, int, int, int>(boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<0ul, int, int, int>(boost::capy::detail::when_all_state<int, int, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<0ul, int, int>(boost::capy::detail::when_all_state<int, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<0ul, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>(boost::capy::detail::when_all_state<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<0ul, int, void, int>(boost::capy::detail::when_all_state<int, void, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<0ul, int, void>(boost::capy::detail::when_all_state<int, void>&) :355 0 0.0% auto boost::capy::detail::extract_single_result<0ul, int>(boost::capy::detail::when_all_state<int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<0ul, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(boost::capy::detail::when_all_state<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&) :355 0 100.0% auto boost::capy::detail::extract_single_result<0ul, void, int>(boost::capy::detail::when_all_state<void, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<0ul, void, void, void>(boost::capy::detail::when_all_state<void, void, void>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<0ul, void, void>(boost::capy::detail::when_all_state<void, void>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<1ul, boost::capy::io_result<>, boost::capy::io_result<> >(boost::capy::detail::when_all_state<boost::capy::io_result<>, boost::capy::io_result<> >&) :355 0 100.0% auto boost::capy::detail::extract_single_result<1ul, boost::capy::io_result<>, int>(boost::capy::detail::when_all_state<boost::capy::io_result<>, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<1ul, boost::capy::io_result<>, void>(boost::capy::detail::when_all_state<boost::capy::io_result<>, void>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<1ul, int, boost::capy::io_result<unsigned long> >(boost::capy::detail::when_all_state<int, boost::capy::io_result<unsigned long> >&) :355 0 100.0% auto boost::capy::detail::extract_single_result<1ul, int, int, int, int, int, int, int, int>(boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<1ul, int, int, int>(boost::capy::detail::when_all_state<int, int, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<1ul, int, int>(boost::capy::detail::when_all_state<int, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<1ul, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>(boost::capy::detail::when_all_state<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<1ul, int, void, int>(boost::capy::detail::when_all_state<int, void, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<1ul, int, void>(boost::capy::detail::when_all_state<int, void>&) :355 0 0.0% auto boost::capy::detail::extract_single_result<1ul, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(boost::capy::detail::when_all_state<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&) :355 0 100.0% auto boost::capy::detail::extract_single_result<1ul, void, int>(boost::capy::detail::when_all_state<void, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<1ul, void, void, void>(boost::capy::detail::when_all_state<void, void, void>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<1ul, void, void>(boost::capy::detail::when_all_state<void, void>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<2ul, int, int, int, int, int, int, int, int>(boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<2ul, int, int, int>(boost::capy::detail::when_all_state<int, int, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<2ul, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>(boost::capy::detail::when_all_state<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<2ul, int, void, int>(boost::capy::detail::when_all_state<int, void, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<2ul, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(boost::capy::detail::when_all_state<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&) :355 0 100.0% auto boost::capy::detail::extract_single_result<2ul, void, void, void>(boost::capy::detail::when_all_state<void, void, void>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<3ul, int, int, int, int, int, int, int, int>(boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<4ul, int, int, int, int, int, int, int, int>(boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<5ul, int, int, int, int, int, int, int, int>(boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<6ul, int, int, int, int, int, int, int, int>(boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>&) :355 0 100.0% auto boost::capy::detail::extract_single_result<7ul, int, int, int, int, int, int, int, int>(boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>&) :355 0 100.0% auto boost::capy::detail::extract_results<boost::capy::io_result<>, boost::capy::io_result<> >(boost::capy::detail::when_all_state<boost::capy::io_result<>, boost::capy::io_result<> >&) :363 0 100.0% 100.0% auto boost::capy::detail::extract_results<boost::capy::io_result<>, int>(boost::capy::detail::when_all_state<boost::capy::io_result<>, int>&) :363 0 100.0% 100.0% auto boost::capy::detail::extract_results<boost::capy::io_result<>, void>(boost::capy::detail::when_all_state<boost::capy::io_result<>, void>&) :363 0 100.0% auto boost::capy::detail::extract_results<int, boost::capy::io_result<unsigned long> >(boost::capy::detail::when_all_state<int, boost::capy::io_result<unsigned long> >&) :363 0 100.0% 100.0% auto boost::capy::detail::extract_results<int, int, int, int, int, int, int, int>(boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>&) :363 0 100.0% 100.0% auto boost::capy::detail::extract_results<int, int, int>(boost::capy::detail::when_all_state<int, int, int>&) :363 0 100.0% 100.0% auto boost::capy::detail::extract_results<int, int>(boost::capy::detail::when_all_state<int, int>&) :363 0 100.0% 100.0% auto boost::capy::detail::extract_results<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>(boost::capy::detail::when_all_state<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>&) :363 0 100.0% 100.0% auto boost::capy::detail::extract_results<int, void, int>(boost::capy::detail::when_all_state<int, void, int>&) :363 0 100.0% 100.0% auto boost::capy::detail::extract_results<int, void>(boost::capy::detail::when_all_state<int, void>&) :363 0 0.0% 0.0% auto boost::capy::detail::extract_results<int>(boost::capy::detail::when_all_state<int>&) :363 0 100.0% 100.0% auto boost::capy::detail::extract_results<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(boost::capy::detail::when_all_state<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&) :363 0 100.0% 100.0% auto boost::capy::detail::extract_results<void, int>(boost::capy::detail::when_all_state<void, int>&) :363 0 100.0% 100.0% auto boost::capy::detail::extract_results<void, void, void>(boost::capy::detail::when_all_state<void, void, void>&) :363 0 100.0% 100.0% auto boost::capy::detail::extract_results<void, void>(boost::capy::detail::when_all_state<void, void>&) :363 0 100.0% 100.0% auto boost::capy::detail::extract_results<boost::capy::io_result<>, void>(boost::capy::detail::when_all_state<boost::capy::io_result<>, void>&)::{lambda<unsigned long... $N0>(std::integer_sequence<unsigned long, ($N0)...>)#1}::operator()<0ul, 1ul>(std::integer_sequence<unsigned long, 0ul, 1ul>) const :365 0 100.0% 100.0% auto boost::capy::detail::extract_results<int, int>(boost::capy::detail::when_all_state<int, int>&)::{lambda<unsigned long... $N0>(std::integer_sequence<unsigned long, ($N0)...>)#1}::operator()<0ul, 1ul>(std::integer_sequence<unsigned long, 0ul, 1ul>) const :365 0 100.0% 100.0% auto boost::capy::detail::extract_results<void, void>(boost::capy::detail::when_all_state<void, void>&)::{lambda<unsigned long... $N0>(std::integer_sequence<unsigned long, ($N0)...>)#1}::operator()<0ul, 1ul>(std::integer_sequence<unsigned long, 0ul, 1ul>) const :365 0 100.0% 100.0% boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::async_event::wait_awaiter>::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::async_event::wait_awaiter>::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::async_event::wait_awaiter, boost::capy::task<int> >(boost::capy::async_event::wait_awaiter, boost::capy::task<int>) :434 0 100.0% 100.0% boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::async_event::wait_awaiter>::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::async_event::wait_awaiter>::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::async_event::wait_awaiter, boost::capy::task<void> >(boost::capy::async_event::wait_awaiter, boost::capy::task<void>) :434 0 100.0% 100.0% boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::stop_only_awaitable>::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::stop_only_awaitable>::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::stop_only_awaitable>::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::stop_only_awaitable>::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::stop_only_awaitable, boost::capy::stop_only_awaitable>(boost::capy::stop_only_awaitable, boost::capy::stop_only_awaitable) :434 0 100.0% 100.0% boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::stop_only_awaitable>::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::stop_only_awaitable>::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::stop_only_awaitable, boost::capy::task<int> >(boost::capy::stop_only_awaitable, boost::capy::task<int>) :434 0 100.0% 100.0% boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<boost::capy::io_result<> > >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<boost::capy::io_result<> > >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<boost::capy::io_result<> > >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<boost::capy::io_result<> > >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<boost::capy::io_result<> >, boost::capy::task<boost::capy::io_result<> > >(boost::capy::task<boost::capy::io_result<> >, boost::capy::task<boost::capy::io_result<> >) :434 0 100.0% 100.0% boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<boost::capy::io_result<unsigned long> > >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<boost::capy::io_result<unsigned long> > >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<int>, boost::capy::task<boost::capy::io_result<unsigned long> > >(boost::capy::task<int>, boost::capy::task<boost::capy::io_result<unsigned long> >) :434 0 100.0% 100.0% boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >(boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>) :434 0 100.0% 100.0% boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >(boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>) :434 0 100.0% 100.0% boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<int>, boost::capy::task<int> >(boost::capy::task<int>, boost::capy::task<int>) :434 0 100.0% 100.0% boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >(boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void>) :434 0 100.0% 100.0% boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >(boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int>) :434 0 100.0% 100.0% boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<int>, boost::capy::task<void> >(boost::capy::task<int>, boost::capy::task<void>) :434 0 100.0% 100.0% boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<int> >(boost::capy::task<int>) :434 0 100.0% 100.0% boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >) :434 0 100.0% 100.0% boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >(boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void>) :434 0 100.0% 100.0% boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<void>, boost::capy::task<void> >(boost::capy::task<void>, boost::capy::task<void>) :434 0 100.0% 100.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/capy
8 //
9
10 #ifndef BOOST_CAPY_WHEN_ALL_HPP
11 #define BOOST_CAPY_WHEN_ALL_HPP
12
13 #include <boost/capy/detail/config.hpp>
14 #include <boost/capy/detail/void_to_monostate.hpp>
15 #include <boost/capy/concept/executor.hpp>
16 #include <boost/capy/concept/io_awaitable.hpp>
17 #include <coroutine>
18 #include <boost/capy/ex/io_env.hpp>
19 #include <boost/capy/ex/frame_allocator.hpp>
20 #include <boost/capy/task.hpp>
21
22 #include <array>
23 #include <atomic>
24 #include <exception>
25 #include <optional>
26 #include <stop_token>
27 #include <tuple>
28 #include <type_traits>
29 #include <utility>
30
31 namespace boost {
32 namespace capy {
33
34 namespace detail {
35
36 /** Holds the result of a single task within when_all.
37 */
38 template<typename T>
39 struct result_holder
40 {
41 std::optional<T> value_;
42
43 62x void set(T v)
44 {
45 62x value_ = std::move(v);
46 62x }
47
48 55x T get() &&
49 {
50 55x return std::move(*value_);
51 }
52 };
53
54 /** Specialization for void tasks - returns monostate to preserve index mapping.
55 */
56 template<>
57 struct result_holder<void>
58 {
59 43x std::monostate get() && { return {}; }
60 };
61
62 /** Shared state for when_all operation.
63
64 @tparam Ts The result types of the tasks.
65 */
66 template<typename... Ts>
67 struct when_all_state
68 {
69 static constexpr std::size_t task_count = sizeof...(Ts);
70
71 // Completion tracking - when_all waits for all children
72 std::atomic<std::size_t> remaining_count_;
73
74 // Result storage in input order
75 std::tuple<result_holder<Ts>...> results_;
76
77 // Runner handles - destroyed in await_resume while allocator is valid
78 std::array<std::coroutine_handle<>, task_count> runner_handles_{};
79
80 // Exception storage - first error wins, others discarded
81 std::atomic<bool> has_exception_{false};
82 std::exception_ptr first_exception_;
83
84 // Stop propagation - on error, request stop for siblings
85 std::stop_source stop_source_;
86
87 // Connects parent's stop_token to our stop_source
88 struct stop_callback_fn
89 {
90 std::stop_source* source_;
91 4x void operator()() const { source_->request_stop(); }
92 };
93 using stop_callback_t = std::stop_callback<stop_callback_fn>;
94 std::optional<stop_callback_t> parent_stop_callback_;
95
96 // Parent resumption
97 std::coroutine_handle<> continuation_;
98 io_env const* caller_env_ = nullptr;
99
100 61x when_all_state()
101
15/15
boost::capy::detail::when_all_state<boost::capy::io_result<>, boost::capy::io_result<> >::when_all_state():
✓ Branch 5 taken 1 time.
boost::capy::detail::when_all_state<boost::capy::io_result<>, int>::when_all_state():
✓ Branch 5 taken 1 time.
boost::capy::detail::when_all_state<boost::capy::io_result<>, void>::when_all_state():
✓ Branch 5 taken 1 time.
boost::capy::detail::when_all_state<int, boost::capy::io_result<unsigned long> >::when_all_state():
✓ Branch 5 taken 1 time.
boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>::when_all_state():
✓ Branch 5 taken 1 time.
boost::capy::detail::when_all_state<int, int, int>::when_all_state():
✓ Branch 5 taken 4 times.
boost::capy::detail::when_all_state<int, int>::when_all_state():
✓ Branch 5 taken 17 times.
boost::capy::detail::when_all_state<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::when_all_state():
✓ Branch 5 taken 1 time.
boost::capy::detail::when_all_state<int, void, int>::when_all_state():
✓ Branch 5 taken 1 time.
boost::capy::detail::when_all_state<int, void>::when_all_state():
✓ Branch 5 taken 1 time.
boost::capy::detail::when_all_state<int>::when_all_state():
✓ Branch 5 taken 2 times.
boost::capy::detail::when_all_state<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::when_all_state():
✓ Branch 5 taken 1 time.
boost::capy::detail::when_all_state<void, int>::when_all_state():
✓ Branch 5 taken 1 time.
boost::capy::detail::when_all_state<void, void, void>::when_all_state():
✓ Branch 5 taken 1 time.
boost::capy::detail::when_all_state<void, void>::when_all_state():
✓ Branch 5 taken 27 times.
61x : remaining_count_(task_count)
102 {
103 61x }
104
105 // Runners self-destruct in final_suspend. No destruction needed here.
106
107 /** Capture an exception (first one wins).
108 */
109 20x void capture_exception(std::exception_ptr ep)
110 {
111 20x bool expected = false;
112
6/30
boost::capy::detail::when_all_state<boost::capy::io_result<>, boost::capy::io_result<> >::capture_exception(std::__exception_ptr::exception_ptr):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_state<boost::capy::io_result<>, int>::capture_exception(std::__exception_ptr::exception_ptr):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_state<boost::capy::io_result<>, void>::capture_exception(std::__exception_ptr::exception_ptr):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_state<int, boost::capy::io_result<unsigned long> >::capture_exception(std::__exception_ptr::exception_ptr):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>::capture_exception(std::__exception_ptr::exception_ptr):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_state<int, int, int>::capture_exception(std::__exception_ptr::exception_ptr):
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 2 times.
boost::capy::detail::when_all_state<int, int>::capture_exception(std::__exception_ptr::exception_ptr):
✓ Branch 1 taken 5 times.
✓ Branch 2 taken 1 time.
boost::capy::detail::when_all_state<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>::capture_exception(std::__exception_ptr::exception_ptr):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_state<int, void, int>::capture_exception(std::__exception_ptr::exception_ptr):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_state<int, void>::capture_exception(std::__exception_ptr::exception_ptr):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
boost::capy::detail::when_all_state<int>::capture_exception(std::__exception_ptr::exception_ptr):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_state<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::capture_exception(std::__exception_ptr::exception_ptr):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_state<void, int>::capture_exception(std::__exception_ptr::exception_ptr):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_state<void, void, void>::capture_exception(std::__exception_ptr::exception_ptr):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_state<void, void>::capture_exception(std::__exception_ptr::exception_ptr):
✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
20x if(has_exception_.compare_exchange_strong(
113 expected, true, std::memory_order_relaxed))
114 17x first_exception_ = ep;
115 20x }
116
117 };
118
119 /** Wrapper coroutine that intercepts task completion.
120
121 This runner awaits its assigned task and stores the result in
122 the shared state, or captures the exception and requests stop.
123 */
124 template<typename T, typename... Ts>
125 struct when_all_runner
126 {
127 struct promise_type // : frame_allocating_base // DISABLED FOR TESTING
128 {
129 when_all_state<Ts...>* state_ = nullptr;
130 io_env env_;
131
132 134x when_all_runner get_return_object()
133 {
134 134x return when_all_runner(std::coroutine_handle<promise_type>::from_promise(*this));
135 }
136
137 134x std::suspend_always initial_suspend() noexcept
138 {
139 134x return {};
140 }
141
142 134x auto final_suspend() noexcept
143 {
144 struct awaiter
145 {
146 promise_type* p_;
147
148 58x bool await_ready() const noexcept
149 {
150 58x return false;
151 }
152
153 58x auto await_suspend(std::coroutine_handle<> h) noexcept
154 {
155 // Extract everything needed before self-destruction.
156 58x auto* state = p_->state_;
157 58x auto* counter = &state->remaining_count_;
158 58x auto* caller_env = state->caller_env_;
159 58x auto cont = state->continuation_;
160
161 58x h.destroy();
162
163 // If last runner, dispatch parent for symmetric transfer.
164 58x auto remaining = counter->fetch_sub(1, std::memory_order_acq_rel);
165
4/4
boost::capy::detail::when_all_runner<int, int, int>::promise_type::final_suspend()::awaiter::await_suspend(std::__n4861::coroutine_handle<void>):
✓ Branch 0 taken 4 times.
✓ Branch 1 taken 4 times.
boost::capy::detail::when_all_runner<void, void, void>::promise_type::final_suspend()::awaiter::await_suspend(std::__n4861::coroutine_handle<void>):
✓ Branch 0 taken 25 times.
✓ Branch 1 taken 25 times.
58x if(remaining == 1)
166 29x return detail::symmetric_transfer(caller_env->executor.dispatch(cont));
167 29x return detail::symmetric_transfer(std::noop_coroutine());
168 }
169
170 void await_resume() const noexcept
171 {
172 }
173 };
174 134x return awaiter{this};
175 }
176
177 114x void return_void()
178 {
179 114x }
180
181 20x void unhandled_exception()
182 {
183 20x state_->capture_exception(std::current_exception());
184 // Request stop for sibling tasks
185 20x state_->stop_source_.request_stop();
186 20x }
187
188 template<class Awaitable>
189 struct transform_awaiter
190 {
191 std::decay_t<Awaitable> a_;
192 promise_type* p_;
193
194 134x bool await_ready()
195 {
196 134x return a_.await_ready();
197 }
198
199 134x decltype(auto) await_resume()
200 {
201 134x return a_.await_resume();
202 }
203
204 template<class Promise>
205 133x auto await_suspend(std::coroutine_handle<Promise> h)
206 {
207 using R = decltype(a_.await_suspend(h, &p_->env_));
208 if constexpr (std::is_same_v<R, std::coroutine_handle<>>)
209 133x return detail::symmetric_transfer(a_.await_suspend(h, &p_->env_));
210 else
211 return a_.await_suspend(h, &p_->env_);
212 }
213 };
214
215 template<class Awaitable>
216 134x auto await_transform(Awaitable&& a)
217 {
218 using A = std::decay_t<Awaitable>;
219 if constexpr (IoAwaitable<A>)
220 {
221 return transform_awaiter<Awaitable>{
222 268x std::forward<Awaitable>(a), this};
223 }
224 else
225 {
226 static_assert(sizeof(A) == 0, "requires IoAwaitable");
227 }
228 134x }
229 };
230
231 std::coroutine_handle<promise_type> h_;
232
233 134x explicit when_all_runner(std::coroutine_handle<promise_type> h)
234 134x : h_(h)
235 {
236 134x }
237
238 // Enable move for all clang versions - some versions need it
239 when_all_runner(when_all_runner&& other) noexcept : h_(std::exchange(other.h_, nullptr)) {}
240
241 // Non-copyable
242 when_all_runner(when_all_runner const&) = delete;
243 when_all_runner& operator=(when_all_runner const&) = delete;
244 when_all_runner& operator=(when_all_runner&&) = delete;
245
246 134x auto release() noexcept
247 {
248 134x return std::exchange(h_, nullptr);
249 }
250 };
251
252 /** Create a runner coroutine for a single awaitable.
253
254 Awaitable is passed directly to ensure proper coroutine frame storage.
255 */
256 template<std::size_t Index, IoAwaitable Awaitable, typename... Ts>
257 when_all_runner<awaitable_result_t<Awaitable>, Ts...>
258
42/42
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::async_event::wait_awaiter>::type&>)()).await_resume)()), boost::capy::io_result<>, int> boost::capy::detail::make_when_all_runner<0ul, boost::capy::async_event::wait_awaiter, boost::capy::io_result<>, int>(boost::capy::async_event::wait_awaiter, boost::capy::detail::when_all_state<boost::capy::io_result<>, int>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::async_event::wait_awaiter>::type&>)()).await_resume)()), boost::capy::io_result<>, void> boost::capy::detail::make_when_all_runner<0ul, boost::capy::async_event::wait_awaiter, boost::capy::io_result<>, void>(boost::capy::async_event::wait_awaiter, boost::capy::detail::when_all_state<boost::capy::io_result<>, void>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::stop_only_awaitable>::type&>)()).await_resume)()), void, int> boost::capy::detail::make_when_all_runner<0ul, boost::capy::stop_only_awaitable, void, int>(boost::capy::stop_only_awaitable, boost::capy::detail::when_all_state<void, int>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::stop_only_awaitable>::type&>)()).await_resume)()), void, void> boost::capy::detail::make_when_all_runner<0ul, boost::capy::stop_only_awaitable, void, void>(boost::capy::stop_only_awaitable, boost::capy::detail::when_all_state<void, void>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::stop_only_awaitable>::type&>)()).await_resume)()), void, void> boost::capy::detail::make_when_all_runner<1ul, boost::capy::stop_only_awaitable, void, void>(boost::capy::stop_only_awaitable, boost::capy::detail::when_all_state<void, void>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<boost::capy::io_result<> > >::type&>)()).await_resume)()), boost::capy::io_result<>, boost::capy::io_result<> > boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<boost::capy::io_result<> >, boost::capy::io_result<>, boost::capy::io_result<> >(boost::capy::task<boost::capy::io_result<> >, boost::capy::detail::when_all_state<boost::capy::io_result<>, boost::capy::io_result<> >*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<boost::capy::io_result<> > >::type&>)()).await_resume)()), boost::capy::io_result<>, boost::capy::io_result<> > boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<boost::capy::io_result<> >, boost::capy::io_result<>, boost::capy::io_result<> >(boost::capy::task<boost::capy::io_result<> >, boost::capy::detail::when_all_state<boost::capy::io_result<>, boost::capy::io_result<> >*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<boost::capy::io_result<unsigned long> > >::type&>)()).await_resume)()), int, boost::capy::io_result<unsigned long> > boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<boost::capy::io_result<unsigned long> >, int, boost::capy::io_result<unsigned long> >(boost::capy::task<boost::capy::io_result<unsigned long> >, boost::capy::detail::when_all_state<int, boost::capy::io_result<unsigned long> >*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), boost::capy::io_result<>, int> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<int>, boost::capy::io_result<>, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<boost::capy::io_result<>, int>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, boost::capy::io_result<unsigned long> > boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<int>, int, boost::capy::io_result<unsigned long> >(boost::capy::task<int>, boost::capy::detail::when_all_state<int, boost::capy::io_result<unsigned long> >*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int, int, int, int, int, int> boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<int>, int, int, int, int, int, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int, int, int, int, int, int> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<int>, int, int, int, int, int, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int, int, int, int, int, int> boost::capy::detail::make_when_all_runner<2ul, boost::capy::task<int>, int, int, int, int, int, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int, int, int, int, int, int> boost::capy::detail::make_when_all_runner<3ul, boost::capy::task<int>, int, int, int, int, int, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int, int, int, int, int, int> boost::capy::detail::make_when_all_runner<4ul, boost::capy::task<int>, int, int, int, int, int, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int, int, int, int, int, int> boost::capy::detail::make_when_all_runner<5ul, boost::capy::task<int>, int, int, int, int, int, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int, int, int, int, int, int> boost::capy::detail::make_when_all_runner<6ul, boost::capy::task<int>, int, int, int, int, int, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int, int, int, int, int, int> boost::capy::detail::make_when_all_runner<7ul, boost::capy::task<int>, int, int, int, int, int, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int> boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<int>, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int>*):
✓ Branch 1 taken 4 times.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<int>, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int>*):
✓ Branch 1 taken 4 times.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int, int> boost::capy::detail::make_when_all_runner<2ul, boost::capy::task<int>, int, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int, int>*):
✓ Branch 1 taken 4 times.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int> boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<int>, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int>*):
✓ Branch 1 taken 17 times.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, int> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<int>, int, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, int>*):
✓ Branch 1 taken 17 times.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void> boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<int>, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, void, int> boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<int>, int, void, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, void, int>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, void, int> boost::capy::detail::make_when_all_runner<2ul, boost::capy::task<int>, int, void, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, void, int>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int, void> boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<int>, int, void>(boost::capy::task<int>, boost::capy::detail::when_all_state<int, void>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), int> boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<int>, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<int>*):
✓ Branch 1 taken 2 times.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)()), void, int> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<int>, void, int>(boost::capy::task<int>, boost::capy::detail::when_all_state<void, int>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)()), int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>(boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::detail::when_all_state<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)()), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::detail::when_all_state<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)()), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::detail::when_all_state<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)()), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > boost::capy::detail::make_when_all_runner<2ul, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::detail::when_all_state<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)()), boost::capy::io_result<>, void> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<void>, boost::capy::io_result<>, void>(boost::capy::task<void>, boost::capy::detail::when_all_state<boost::capy::io_result<>, void>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)()), int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void> boost::capy::detail::make_when_all_runner<2ul, boost::capy::task<void>, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>(boost::capy::task<void>, boost::capy::detail::when_all_state<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)()), int, void, int> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<void>, int, void, int>(boost::capy::task<void>, boost::capy::detail::when_all_state<int, void, int>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)()), int, void> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<void>, int, void>(boost::capy::task<void>, boost::capy::detail::when_all_state<int, void>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)()), void, void, void> boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<void>, void, void, void>(boost::capy::task<void>, boost::capy::detail::when_all_state<void, void, void>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)()), void, void, void> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<void>, void, void, void>(boost::capy::task<void>, boost::capy::detail::when_all_state<void, void, void>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)()), void, void, void> boost::capy::detail::make_when_all_runner<2ul, boost::capy::task<void>, void, void, void>(boost::capy::task<void>, boost::capy::detail::when_all_state<void, void, void>*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)()), void, void> boost::capy::detail::make_when_all_runner<0ul, boost::capy::task<void>, void, void>(boost::capy::task<void>, boost::capy::detail::when_all_state<void, void>*):
✓ Branch 1 taken 26 times.
boost::capy::detail::when_all_runner<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)()), void, void> boost::capy::detail::make_when_all_runner<1ul, boost::capy::task<void>, void, void>(boost::capy::task<void>, boost::capy::detail::when_all_state<void, void>*):
✓ Branch 1 taken 26 times.
134x make_when_all_runner(Awaitable inner, when_all_state<Ts...>* state)
259 {
260 using T = awaitable_result_t<Awaitable>;
261 if constexpr (std::is_void_v<T>)
262 {
263 co_await std::move(inner);
264 }
265 else
266 {
267 std::get<Index>(state->results_).set(co_await std::move(inner));
268 }
269 268x }
270
271 /** Internal awaitable that launches all runner coroutines and waits.
272
273 This awaitable is used inside the when_all coroutine to handle
274 the concurrent execution of child awaitables.
275 */
276 template<IoAwaitable... Awaitables>
277 class when_all_launcher
278 {
279 using state_type = when_all_state<awaitable_result_t<Awaitables>...>;
280
281 std::tuple<Awaitables...>* awaitables_;
282 state_type* state_;
283
284 public:
285 61x when_all_launcher(
286 std::tuple<Awaitables...>* awaitables,
287 state_type* state)
288 61x : awaitables_(awaitables)
289 61x , state_(state)
290 {
291 61x }
292
293 61x bool await_ready() const noexcept
294 {
295 61x return sizeof...(Awaitables) == 0;
296 }
297
298 61x std::coroutine_handle<> await_suspend(std::coroutine_handle<> continuation, io_env const* caller_env)
299 {
300 61x state_->continuation_ = continuation;
301 61x state_->caller_env_ = caller_env;
302
303 // Forward parent's stop requests to children
304
17/32
boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::stop_only_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
boost::capy::detail::when_all_launcher<boost::capy::task<boost::capy::io_result<> >, boost::capy::task<boost::capy::io_result<> > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<boost::capy::io_result<unsigned long> > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 6 times.
✓ Branch 2 taken 11 times.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✓ Branch 2 taken 4 times.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✓ Branch 2 taken 26 times.
boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✓ Branch 2 taken 1 time.
61x if(caller_env->stop_token.stop_possible())
305 {
306 16x state_->parent_stop_callback_.emplace(
307 8x caller_env->stop_token,
308 8x typename state_type::stop_callback_fn{&state_->stop_source_});
309
310
4/32
boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::stop_only_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
boost::capy::detail::when_all_launcher<boost::capy::task<boost::capy::io_result<> >, boost::capy::task<boost::capy::io_result<> > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_launcher<boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<boost::capy::io_result<unsigned long> > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 4 times.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_launcher<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✗ Branch 1 not taken.
✗ Branch 2 not taken.
8x if(caller_env->stop_token.stop_requested())
311 4x state_->stop_source_.request_stop();
312 }
313
314 // CRITICAL: If the last task finishes synchronously then the parent
315 // coroutine resumes, destroying its frame, and destroying this object
316 // prior to the completion of await_suspend. Therefore, await_suspend
317 // must ensure `this` cannot be referenced after calling `launch_one`
318 // for the last time.
319 61x auto token = state_->stop_source_.get_token();
320 [&]<std::size_t... Is>(std::index_sequence<Is...>) {
321
6/6
auto boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*)::{lambda<unsigned long... $N0>(std::integer_sequence<unsigned long, ($N0)...>)#1}::operator()<0ul, 1ul>(std::integer_sequence<unsigned long, 0ul, 1ul>) const:
✓ Branch 2 taken 1 time.
✓ Branch 6 taken 1 time.
auto boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*)::{lambda<unsigned long... $N0>(std::integer_sequence<unsigned long, ($N0)...>)#1}::operator()<0ul, 1ul>(std::integer_sequence<unsigned long, 0ul, 1ul>) const:
✓ Branch 2 taken 4 times.
✓ Branch 6 taken 4 times.
auto boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*)::{lambda<unsigned long... $N0>(std::integer_sequence<unsigned long, ($N0)...>)#1}::operator()<0ul, 1ul>(std::integer_sequence<unsigned long, 0ul, 1ul>) const:
✓ Branch 2 taken 25 times.
✓ Branch 6 taken 25 times.
30x (..., launch_one<Is>(caller_env->executor, token));
322
18/18
auto boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*)::{lambda<unsigned long... $N0>(std::integer_sequence<unsigned long, ($N0)...>)#1}::operator()<0ul, 1ul>(std::integer_sequence<unsigned long, 0ul, 1ul>) const:
✓ Branch 1 taken 1 time.
auto boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*)::{lambda<unsigned long... $N0>(std::integer_sequence<unsigned long, ($N0)...>)#1}::operator()<0ul, 1ul>(std::integer_sequence<unsigned long, 0ul, 1ul>) const:
✓ Branch 1 taken 4 times.
auto boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*)::{lambda<unsigned long... $N0>(std::integer_sequence<unsigned long, ($N0)...>)#1}::operator()<0ul, 1ul>(std::integer_sequence<unsigned long, 0ul, 1ul>) const:
✓ Branch 1 taken 25 times.
boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::stop_only_awaitable>::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::task<boost::capy::io_result<> >, boost::capy::task<boost::capy::io_result<> > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 2 times.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<boost::capy::io_result<unsigned long> > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 13 times.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 4 times.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 1 time.
boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >::await_suspend(std::__n4861::coroutine_handle<void>, boost::capy::io_env const*):
✓ Branch 1 taken 1 time.
61x }(std::index_sequence_for<Awaitables...>{});
323
324 // Let signal_completion() handle resumption
325 122x return std::noop_coroutine();
326 61x }
327
328 61x void await_resume() const noexcept
329 {
330 // Results are extracted by the when_all coroutine from state
331 61x }
332
333 private:
334 template<std::size_t I>
335 134x void launch_one(executor_ref caller_ex, std::stop_token token)
336 {
337
42/42
void boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<int> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<void> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<void> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::stop_only_awaitable>::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::stop_only_awaitable>::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::task<int> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<boost::capy::io_result<> >, boost::capy::task<boost::capy::io_result<> > >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<boost::capy::io_result<> >, boost::capy::task<boost::capy::io_result<> > >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 2 times.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<boost::capy::io_result<unsigned long> > >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<boost::capy::io_result<unsigned long> > >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 17 times.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 17 times.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 4 times.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 4 times.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<2ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 4 times.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<2ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<3ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<4ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<5ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<6ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<7ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >::launch_one<2ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >::launch_one<2ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::launch_one<2ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 26 times.
void boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 26 times.
void boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >::launch_one<2ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 2 taken 1 time.
134x auto runner = make_when_all_runner<I>(
338 134x std::move(std::get<I>(*awaitables_)), state_);
339
340 134x auto h = runner.release();
341 134x h.promise().state_ = state_;
342 134x h.promise().env_ = io_env{caller_ex, token, state_->caller_env_->frame_allocator};
343
344 134x std::coroutine_handle<> ch{h};
345 134x state_->runner_handles_[I] = ch;
346
42/42
void boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<int> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<void> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::async_event::wait_awaiter, boost::capy::task<void> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::stop_only_awaitable>::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::stop_only_awaitable>::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::stop_only_awaitable, boost::capy::task<int> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<boost::capy::io_result<> >, boost::capy::task<boost::capy::io_result<> > >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<boost::capy::io_result<> >, boost::capy::task<boost::capy::io_result<> > >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 2 times.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<boost::capy::io_result<unsigned long> > >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<boost::capy::io_result<unsigned long> > >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 17 times.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 17 times.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 4 times.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 4 times.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<2ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 4 times.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<2ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<3ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<4ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<5ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<6ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >::launch_one<7ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >::launch_one<2ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >::launch_one<2ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::launch_one<2ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 26 times.
void boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 26 times.
void boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >::launch_one<0ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >::launch_one<1ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
void boost::capy::detail::when_all_launcher<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >::launch_one<2ul>(boost::capy::executor_ref, std::stop_token):
✓ Branch 1 taken 1 time.
134x state_->caller_env_->executor.post(ch);
347 268x }
348 };
349
350 /** Helper to extract a single result from state.
351 This is a separate function to work around a GCC-11 ICE that occurs
352 when using nested immediately-invoked lambdas with pack expansion.
353 */
354 template<std::size_t I, typename... Ts>
355 98x auto extract_single_result(when_all_state<Ts...>& state)
356 {
357 98x return std::move(std::get<I>(state.results_)).get();
358 }
359
360 /** Extract all results from state as a tuple.
361 */
362 template<typename... Ts>
363 44x auto extract_results(when_all_state<Ts...>& state)
364 {
365 44x return [&]<std::size_t... Is>(std::index_sequence<Is...>) {
366
3/3
auto boost::capy::detail::extract_results<boost::capy::io_result<>, void>(boost::capy::detail::when_all_state<boost::capy::io_result<>, void>&)::{lambda<unsigned long... $N0>(std::integer_sequence<unsigned long, ($N0)...>)#1}::operator()<0ul, 1ul>(std::integer_sequence<unsigned long, 0ul, 1ul>) const:
✓ Branch 2 taken 1 time.
auto boost::capy::detail::extract_results<int, int>(boost::capy::detail::when_all_state<int, int>&)::{lambda<unsigned long... $N0>(std::integer_sequence<unsigned long, ($N0)...>)#1}::operator()<0ul, 1ul>(std::integer_sequence<unsigned long, 0ul, 1ul>) const:
✓ Branch 1 taken 4 times.
✓ Branch 4 taken 4 times.
21x return std::tuple(extract_single_result<Is>(state)...);
367
16/17
auto boost::capy::detail::extract_results<boost::capy::io_result<>, boost::capy::io_result<> >(boost::capy::detail::when_all_state<boost::capy::io_result<>, boost::capy::io_result<> >&):
✓ Branch 1 taken 1 time.
auto boost::capy::detail::extract_results<boost::capy::io_result<>, int>(boost::capy::detail::when_all_state<boost::capy::io_result<>, int>&):
✓ Branch 1 taken 1 time.
auto boost::capy::detail::extract_results<boost::capy::io_result<>, void>(boost::capy::detail::when_all_state<boost::capy::io_result<>, void>&)::{lambda<unsigned long... $N0>(std::integer_sequence<unsigned long, ($N0)...>)#1}::operator()<0ul, 1ul>(std::integer_sequence<unsigned long, 0ul, 1ul>) const:
✓ Branch 1 taken 1 time.
auto boost::capy::detail::extract_results<int, boost::capy::io_result<unsigned long> >(boost::capy::detail::when_all_state<int, boost::capy::io_result<unsigned long> >&):
✓ Branch 1 taken 1 time.
auto boost::capy::detail::extract_results<int, int, int, int, int, int, int, int>(boost::capy::detail::when_all_state<int, int, int, int, int, int, int, int>&):
✓ Branch 1 taken 1 time.
auto boost::capy::detail::extract_results<int, int, int>(boost::capy::detail::when_all_state<int, int, int>&):
✓ Branch 1 taken 2 times.
auto boost::capy::detail::extract_results<int, int>(boost::capy::detail::when_all_state<int, int>&):
✓ Branch 1 taken 8 times.
auto boost::capy::detail::extract_results<int, int>(boost::capy::detail::when_all_state<int, int>&)::{lambda<unsigned long... $N0>(std::integer_sequence<unsigned long, ($N0)...>)#1}::operator()<0ul, 1ul>(std::integer_sequence<unsigned long, 0ul, 1ul>) const:
✓ Branch 1 taken 4 times.
auto boost::capy::detail::extract_results<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>(boost::capy::detail::when_all_state<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>&):
✓ Branch 1 taken 1 time.
auto boost::capy::detail::extract_results<int, void, int>(boost::capy::detail::when_all_state<int, void, int>&):
✓ Branch 1 taken 1 time.
auto boost::capy::detail::extract_results<int, void>(boost::capy::detail::when_all_state<int, void>&):
✗ Branch 1 not taken.
auto boost::capy::detail::extract_results<int>(boost::capy::detail::when_all_state<int>&):
✓ Branch 1 taken 2 times.
auto boost::capy::detail::extract_results<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(boost::capy::detail::when_all_state<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&):
✓ Branch 1 taken 1 time.
auto boost::capy::detail::extract_results<void, int>(boost::capy::detail::when_all_state<void, int>&):
✓ Branch 1 taken 1 time.
auto boost::capy::detail::extract_results<void, void, void>(boost::capy::detail::when_all_state<void, void, void>&):
✓ Branch 1 taken 1 time.
auto boost::capy::detail::extract_results<void, void>(boost::capy::detail::when_all_state<void, void>&):
✓ Branch 1 taken 2 times.
auto boost::capy::detail::extract_results<void, void>(boost::capy::detail::when_all_state<void, void>&)::{lambda<unsigned long... $N0>(std::integer_sequence<unsigned long, ($N0)...>)#1}::operator()<0ul, 1ul>(std::integer_sequence<unsigned long, 0ul, 1ul>) const:
✓ Branch 1 taken 16 times.
88x }(std::index_sequence_for<Ts...>{});
368 }
369
370 } // namespace detail
371
372 /** Compute the when_all result tuple type.
373
374 Void-returning tasks contribute std::monostate to preserve the
375 task-index-to-result-index mapping, matching when_any's approach.
376
377 Example: when_all_result_t<int, void, string> = std::tuple<int, std::monostate, string>
378 Example: when_all_result_t<void, void> = std::tuple<std::monostate, std::monostate>
379 */
380 template<typename... Ts>
381 using when_all_result_t = std::tuple<void_to_monostate_t<Ts>...>;
382
383 /** Execute multiple awaitables concurrently and collect their results.
384
385 Launches all awaitables simultaneously and waits for all to complete
386 before returning. Results are collected in input order. If any
387 awaitable throws, cancellation is requested for siblings and the first
388 exception is rethrown after all awaitables complete.
389
390 @li All child awaitables run concurrently on the caller's executor
391 @li Results are returned as a tuple in input order
392 @li Void-returning awaitables contribute std::monostate to the
393 result tuple, preserving the task-index-to-result-index mapping
394 @li First exception wins; subsequent exceptions are discarded
395 @li Stop is requested for siblings on first error
396 @li Completes only after all children have finished
397
398 @par Thread Safety
399 The returned task must be awaited from a single execution context.
400 Child awaitables execute concurrently but complete through the caller's
401 executor.
402
403 @param awaitables The awaitables to execute concurrently. Each must
404 satisfy @ref IoAwaitable and is consumed (moved-from) when
405 `when_all` is awaited.
406
407 @return A task yielding a tuple of results in input order. Void tasks
408 contribute std::monostate to preserve index correspondence.
409
410 @par Example
411
412 @code
413 task<> example()
414 {
415 // Concurrent fetch, results collected in order
416 auto [user, posts] = co_await when_all(
417 fetch_user( id ), // task<User>
418 fetch_posts( id ) // task<std::vector<Post>>
419 );
420
421 // Void awaitables contribute monostate
422 auto [a, _, b] = co_await when_all(
423 fetch_int(), // task<int>
424 log_event( "start" ), // task<void> → monostate
425 fetch_str() // task<string>
426 );
427 // a is int, _ is monostate, b is string
428 }
429 @endcode
430
431 @see IoAwaitable, task
432 */
433 template<IoAwaitable... As>
434
16/16
boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::async_event::wait_awaiter>::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::async_event::wait_awaiter>::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::async_event::wait_awaiter, boost::capy::task<int> >(boost::capy::async_event::wait_awaiter, boost::capy::task<int>):
✓ Branch 1 taken 1 time.
boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::async_event::wait_awaiter>::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::async_event::wait_awaiter>::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::async_event::wait_awaiter, boost::capy::task<void> >(boost::capy::async_event::wait_awaiter, boost::capy::task<void>):
✓ Branch 1 taken 1 time.
boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::stop_only_awaitable>::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::stop_only_awaitable>::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::stop_only_awaitable>::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::stop_only_awaitable>::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::stop_only_awaitable, boost::capy::stop_only_awaitable>(boost::capy::stop_only_awaitable, boost::capy::stop_only_awaitable):
✓ Branch 1 taken 1 time.
boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::stop_only_awaitable>::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::stop_only_awaitable>::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::stop_only_awaitable, boost::capy::task<int> >(boost::capy::stop_only_awaitable, boost::capy::task<int>):
✓ Branch 1 taken 1 time.
boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<boost::capy::io_result<> > >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<boost::capy::io_result<> > >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<boost::capy::io_result<> > >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<boost::capy::io_result<> > >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<boost::capy::io_result<> >, boost::capy::task<boost::capy::io_result<> > >(boost::capy::task<boost::capy::io_result<> >, boost::capy::task<boost::capy::io_result<> >):
✓ Branch 1 taken 1 time.
boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<boost::capy::io_result<unsigned long> > >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<boost::capy::io_result<unsigned long> > >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<int>, boost::capy::task<boost::capy::io_result<unsigned long> > >(boost::capy::task<int>, boost::capy::task<boost::capy::io_result<unsigned long> >):
✓ Branch 1 taken 1 time.
boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >(boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>):
✓ Branch 1 taken 1 time.
boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int> >(boost::capy::task<int>, boost::capy::task<int>, boost::capy::task<int>):
✓ Branch 1 taken 4 times.
boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<int>, boost::capy::task<int> >(boost::capy::task<int>, boost::capy::task<int>):
✓ Branch 1 taken 17 times.
boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void> >(boost::capy::task<int>, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<void>):
✓ Branch 1 taken 1 time.
boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int> >(boost::capy::task<int>, boost::capy::task<void>, boost::capy::task<int>):
✓ Branch 1 taken 1 time.
boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<int>, boost::capy::task<void> >(boost::capy::task<int>, boost::capy::task<void>):
✓ Branch 1 taken 1 time.
boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<int> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<int> >(boost::capy::task<int>):
✓ Branch 1 taken 2 times.
boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >):
✓ Branch 1 taken 1 time.
boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void> >(boost::capy::task<void>, boost::capy::task<void>, boost::capy::task<void>):
✓ Branch 1 taken 1 time.
boost::capy::task<std::tuple<std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>::type, std::conditional<is_void_v<decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>, std::monostate, decltype ((((declval<std::decay<boost::capy::task<void> >::type&>)()).await_resume)())>::type> > boost::capy::when_all<boost::capy::task<void>, boost::capy::task<void> >(boost::capy::task<void>, boost::capy::task<void>):
✓ Branch 1 taken 26 times.
61x [[nodiscard]] auto when_all(As... awaitables)
435 -> task<when_all_result_t<awaitable_result_t<As>...>>
436 {
437 // State is stored in the coroutine frame, using the frame allocator
438 detail::when_all_state<awaitable_result_t<As>...> state;
439
440 // Store awaitables in the frame
441 std::tuple<As...> awaitable_tuple(std::move(awaitables)...);
442
443 // Launch all awaitables and wait for completion
444 co_await detail::when_all_launcher<As...>(&awaitable_tuple, &state);
445
446 // Propagate first exception if any.
447 // Safe without explicit acquire: capture_exception() is sequenced-before
448 // signal_completion()'s acq_rel fetch_sub, which synchronizes-with the
449 // last task's decrement that resumes this coroutine.
450 if(state.first_exception_)
451 std::rethrow_exception(state.first_exception_);
452
453 co_return detail::extract_results(state);
454 122x }
455
456 } // namespace capy
457 } // namespace boost
458
459 #endif
460