include/boost/capy/when_all.hpp

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