include/boost/capy/ex/io_awaitable_promise_base.hpp

90.1% Lines (1573/1746) 100.0% List of functions (341/341) 58.6% Branches (580/990)
f(x) Functions (341)
Function Calls Lines Branches Blocks
boost::capy::io_awaitable_promise_base<boost::capy::custom_transform_coro::promise_type>::operator new(unsigned long) :148 0 90.9% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::env_test_coro::promise_type>::operator new(unsigned long) :148 0 90.9% 60.0% boost::capy::io_awaitable_promise_base<boost::capy::tag_test_coro::promise_type>::operator new(unsigned long) :148 0 90.9% 60.0% boost::capy::io_awaitable_promise_base<boost::capy::task<bool>::promise_type>::operator new(unsigned long) :148 0 100.0% 90.0% boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<> >::promise_type>::operator new(unsigned long) :148 0 81.8% 60.0% boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<unsigned long> >::promise_type>::operator new(unsigned long) :148 0 100.0% 90.0% boost::capy::io_awaitable_promise_base<boost::capy::task<double>::promise_type>::operator new(unsigned long) :148 0 100.0% 80.0% boost::capy::io_awaitable_promise_base<boost::capy::task<int>::promise_type>::operator new(unsigned long) :148 0 100.0% 90.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>::operator new(unsigned long) :148 0 100.0% 90.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, boost::capy::io_result<> > >::promise_type>::operator new(unsigned long) :148 0 81.8% 60.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, int> >::promise_type>::operator new(unsigned long) :148 0 81.8% 60.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::stop_token>::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, int> >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, std::monostate> >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, boost::capy::io_result<unsigned long> > >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int, int, int, int, int, int> >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int> >::promise_type>::operator new(unsigned long) :148 0 81.8% 60.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int> >::promise_type>::operator new(unsigned long) :148 0 100.0% 90.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate, int> >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate> >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int> >::promise_type>::operator new(unsigned long) :148 0 81.8% 60.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<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>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, int> >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate, std::monostate> >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate> >::promise_type>::operator new(unsigned long) :148 0 90.9% 80.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, int> >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, boost::capy::io_result<unsigned long> > >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, int> >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, std::monostate> >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int, int, int, int, int> >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int> >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int> >::promise_type>::operator new(unsigned long) :148 0 81.8% 60.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int> >::promise_type>::operator new(unsigned long) :148 0 81.8% 60.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double> >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >::promise_type>::operator new(unsigned long) :148 0 81.8% 60.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::monostate> >::promise_type>::operator new(unsigned long) :148 0 81.8% 60.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int> >::promise_type>::operator new(unsigned long) :148 0 81.8% 60.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, int> >::promise_type>::operator new(unsigned long) :148 0 81.8% 60.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate, std::monostate> >::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate> >::promise_type>::operator new(unsigned long) :148 0 90.9% 80.0% boost::capy::io_awaitable_promise_base<boost::capy::task<unsigned long>::promise_type>::operator new(unsigned long) :148 0 100.0% 90.0% boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::operator new(unsigned long) :148 0 100.0% 90.0% boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<int>::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<void>::promise_type>::operator new(unsigned long) :148 0 81.8% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::test_coro::promise_type>::operator new(unsigned long) :148 0 90.9% 60.0% boost::capy::io_awaitable_promise_base<boost::capy::custom_transform_coro::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::env_test_coro::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 66.7% boost::capy::io_awaitable_promise_base<boost::capy::tag_test_coro::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 66.7% boost::capy::io_awaitable_promise_base<boost::capy::task<bool>::promise_type>::operator delete(void*, unsigned long) :173 0 100.0% 83.3% boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 66.7% boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<unsigned long> >::promise_type>::operator delete(void*, unsigned long) :173 0 100.0% 83.3% boost::capy::io_awaitable_promise_base<boost::capy::task<double>::promise_type>::operator delete(void*, unsigned long) :173 0 100.0% 66.7% boost::capy::io_awaitable_promise_base<boost::capy::task<int>::promise_type>::operator delete(void*, unsigned long) :173 0 100.0% 83.3% boost::capy::io_awaitable_promise_base<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>::operator delete(void*, unsigned long) :173 0 100.0% 83.3% boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, boost::capy::io_result<> > >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 66.7% boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, int> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 66.7% boost::capy::io_awaitable_promise_base<boost::capy::task<std::stop_token>::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, int> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, std::monostate> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, boost::capy::io_result<unsigned long> > >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int, int, int, int, int, int> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 66.7% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int> >::promise_type>::operator delete(void*, unsigned long) :173 0 100.0% 83.3% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate, int> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 66.7% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<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>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, int> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate, std::monostate> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate> >::promise_type>::operator delete(void*, unsigned long) :173 0 100.0% 83.3% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, int> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, boost::capy::io_result<unsigned long> > >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, int> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, std::monostate> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int, int, int, int, int> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 66.7% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 66.7% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 66.7% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::monostate> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 66.7% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 66.7% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, int> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 66.7% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate, std::monostate> >::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate> >::promise_type>::operator delete(void*, unsigned long) :173 0 100.0% 83.3% boost::capy::io_awaitable_promise_base<boost::capy::task<unsigned long>::promise_type>::operator delete(void*, unsigned long) :173 0 100.0% 83.3% boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::operator delete(void*, unsigned long) :173 0 100.0% 83.3% boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<int>::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<void>::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::test_coro::promise_type>::operator delete(void*, unsigned long) :173 0 87.5% 66.7% boost::capy::io_awaitable_promise_base<boost::capy::custom_transform_coro::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::env_test_coro::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::tag_test_coro::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<bool>::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<unsigned long> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<double>::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<int>::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, boost::capy::io_result<> > >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, int> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::stop_token>::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, int> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, std::monostate> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, boost::capy::io_result<unsigned long> > >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int, int, int, int, int, int> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate, int> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<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>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, int> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate, std::monostate> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, int> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, boost::capy::io_result<unsigned long> > >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, int> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, std::monostate> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int, int, int, int, int> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::monostate> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, int> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate, std::monostate> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate> >::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<unsigned long>::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::~io_awaitable_promise_base() :187 0 100.0% 100.0% boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<int>::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<void>::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::test_coro::promise_type>::~io_awaitable_promise_base() :187 0 75.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<bool>::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<unsigned long> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<double>::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<int>::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, boost::capy::io_result<> > >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, int> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::stop_token>::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, int> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, std::monostate> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, boost::capy::io_result<unsigned long> > >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int, int, int, int, int, int> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate, int> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<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>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, int> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate, std::monostate> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, int> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, boost::capy::io_result<unsigned long> > >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, int> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, std::monostate> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int, int, int, int, int> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::monostate> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, int> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate, std::monostate> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate> >::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<unsigned long>::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<int>::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<void>::promise_type>::set_continuation(std::__n4861::coroutine_handle<void>) :206 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<bool>::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<unsigned long> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<double>::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<int>::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, boost::capy::io_result<> > >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, int> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::stop_token>::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, int> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, std::monostate> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, boost::capy::io_result<unsigned long> > >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int, int, int, int, int, int> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate, int> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<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>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, int> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate, std::monostate> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, int> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, boost::capy::io_result<unsigned long> > >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, int> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, std::monostate> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int, int, int, int, int> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::monostate> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, int> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate, std::monostate> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate> >::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<unsigned long>::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<int>::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<void>::promise_type>::continuation() const :218 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::custom_transform_coro::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::env_test_coro::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::tag_test_coro::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<bool>::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<unsigned long> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<double>::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<int>::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, boost::capy::io_result<> > >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, int> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::stop_token>::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, int> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, std::monostate> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, boost::capy::io_result<unsigned long> > >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int, int, int, int, int, int> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate, int> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<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>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, int> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate, std::monostate> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, int> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, boost::capy::io_result<unsigned long> > >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, int> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, std::monostate> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int, int, int, int, int> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::monostate> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, int> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate, std::monostate> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate> >::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<unsigned long>::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<int>::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<void>::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::test_coro::promise_type>::set_environment(boost::capy::io_env const*) :236 0 100.0% boost::capy::io_awaitable_promise_base<boost::capy::task<bool>::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<unsigned long> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<double>::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<int>::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, boost::capy::io_result<> > >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, int> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::stop_token>::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, int> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, std::monostate> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, boost::capy::io_result<unsigned long> > >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int, int, int, int, int, int> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate, int> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<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>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, int> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate, std::monostate> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, int> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, boost::capy::io_result<unsigned long> > >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, int> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, std::monostate> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int, int, int, int, int> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::monostate> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, int> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate, std::monostate> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate> >::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<unsigned long>::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::environment() const :245 0 100.0% 50.0% boost::capy::io_awaitable_promise_base<boost::capy::test_coro::promise_type>::environment() const :245 0 100.0% 50.0% auto boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::await_transform<boost::capy::delay_awaitable>(boost::capy::delay_awaitable&&) :280 0 100.0% auto boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::await_transform<boost::capy::stop_only_awaitable>(boost::capy::stop_only_awaitable&&) :280 0 100.0% auto boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::await_transform<boost::capy::test::buffer_source::pull(std::span<boost::capy::const_buffer, 18446744073709551615ul>)::awaitable>(boost::capy::test::buffer_source::pull(std::span<boost::capy::const_buffer, 18446744073709551615ul>)::awaitable&&) :280 0 100.0% auto boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::await_transform<boost::capy::write_now<boost::capy::test::write_stream>::op_type>(boost::capy::write_now<boost::capy::test::write_stream>::op_type&&) :280 0 100.0%
Line Branch TLA Hits Source Code
1 //
2 // Copyright (c) 2025 Vinnie Falco (vinnie.falco@gmail.com)
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_EX_IO_AWAITABLE_PROMISE_BASE_HPP
11 #define BOOST_CAPY_EX_IO_AWAITABLE_PROMISE_BASE_HPP
12
13 #include <boost/capy/detail/config.hpp>
14 #include <boost/capy/ex/frame_allocator.hpp>
15 #include <boost/capy/ex/io_env.hpp>
16 #include <boost/capy/ex/recycling_memory_resource.hpp>
17 #include <boost/capy/ex/this_coro.hpp>
18
19 #include <coroutine>
20 #include <cstddef>
21 #include <cstring>
22 #include <memory_resource>
23 #include <stop_token>
24 #include <type_traits>
25
26 namespace boost {
27 namespace capy {
28
29 /** CRTP mixin that adds I/O awaitable support to a promise type.
30
31 Inherit from this class to enable these capabilities in your coroutine:
32
33 1. **Frame allocation** — The mixin provides `operator new/delete` that
34 use the thread-local frame allocator set by `run_async`.
35
36 2. **Environment storage** — The mixin stores a pointer to the `io_env`
37 containing the executor, stop token, and allocator for this coroutine.
38
39 3. **Environment access** — Coroutine code can retrieve the environment
40 via `co_await this_coro::environment`, or individual fields via
41 `co_await this_coro::executor`, `co_await this_coro::stop_token`,
42 and `co_await this_coro::frame_allocator`.
43
44 @tparam Derived The derived promise type (CRTP pattern).
45
46 @par Basic Usage
47
48 For coroutines that need to access their execution environment:
49
50 @code
51 struct my_task
52 {
53 struct promise_type : io_awaitable_promise_base<promise_type>
54 {
55 my_task get_return_object();
56 std::suspend_always initial_suspend() noexcept;
57 std::suspend_always final_suspend() noexcept;
58 void return_void();
59 void unhandled_exception();
60 };
61
62 // ... awaitable interface ...
63 };
64
65 my_task example()
66 {
67 auto env = co_await this_coro::environment;
68 // Access env->executor, env->stop_token, env->frame_allocator
69
70 // Or use fine-grained accessors:
71 auto ex = co_await this_coro::executor;
72 auto token = co_await this_coro::stop_token;
73 auto* alloc = co_await this_coro::frame_allocator;
74 }
75 @endcode
76
77 @par Custom Awaitable Transformation
78
79 If your promise needs to transform awaitables (e.g., for affinity or
80 logging), override `transform_awaitable` instead of `await_transform`:
81
82 @code
83 struct promise_type : io_awaitable_promise_base<promise_type>
84 {
85 template<typename A>
86 auto transform_awaitable(A&& a)
87 {
88 // Your custom transformation logic
89 return std::forward<A>(a);
90 }
91 };
92 @endcode
93
94 The mixin's `await_transform` intercepts @ref this_coro::environment_tag
95 and the fine-grained tag types (@ref this_coro::executor_tag,
96 @ref this_coro::stop_token_tag, @ref this_coro::frame_allocator_tag),
97 then delegates all other awaitables to your `transform_awaitable`.
98
99 @par Making Your Coroutine an IoAwaitable
100
101 The mixin handles the "inside the coroutine" part—accessing the
102 environment. To receive the environment when your coroutine is awaited
103 (satisfying @ref IoAwaitable), implement the `await_suspend` overload
104 on your coroutine return type:
105
106 @code
107 struct my_task
108 {
109 struct promise_type : io_awaitable_promise_base<promise_type> { ... };
110
111 std::coroutine_handle<promise_type> h_;
112
113 // IoAwaitable await_suspend receives and stores the environment
114 std::coroutine_handle<> await_suspend(std::coroutine_handle<> cont, io_env const* env)
115 {
116 h_.promise().set_environment(env);
117 // ... rest of suspend logic ...
118 }
119 };
120 @endcode
121
122 @par Thread Safety
123 The environment is stored during `await_suspend` and read during
124 `co_await this_coro::environment`. These occur on the same logical
125 thread of execution, so no synchronization is required.
126
127 @see this_coro::environment, this_coro::executor,
128 this_coro::stop_token, this_coro::frame_allocator
129 @see io_env
130 @see IoAwaitable
131 */
132 template<typename Derived>
133 class io_awaitable_promise_base
134 {
135 io_env const* env_ = nullptr;
136 mutable std::coroutine_handle<> cont_{std::noop_coroutine()};
137
138 public:
139 /** Allocate a coroutine frame.
140
141 Uses the thread-local frame allocator set by run_async.
142 Falls back to default memory resource if not set.
143 Stores the allocator pointer at the end of each frame for
144 correct deallocation even when TLS changes. Uses memcpy
145 to avoid alignment requirements on the trailing pointer.
146 Bypasses virtual dispatch for the recycling allocator.
147 */
148 5130x static void* operator new(std::size_t size)
149 {
150
123/200
boost::capy::io_awaitable_promise_base<boost::capy::custom_transform_coro::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::env_test_coro::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 5 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::tag_test_coro::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 3 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<bool>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 5 times.
✓ Branch 1 taken 16 times.
✓ Branch 3 taken 5 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 2 times.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<unsigned long> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 14 times.
✓ Branch 1 taken 1377 times.
✓ Branch 3 taken 14 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<double>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<int>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 10 times.
✓ Branch 1 taken 319 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 6 times.
✓ Branch 1 taken 8 times.
✓ Branch 3 taken 6 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, boost::capy::io_result<> > >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 6 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 13 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::stop_token>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, boost::capy::io_result<unsigned long> > >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int, int, int, int, int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 3 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 16 times.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<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>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 25 times.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, boost::capy::io_result<unsigned long> > >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int, int, int, int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 8 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 16 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 3 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 2 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 1 time.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<unsigned long>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 5 times.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 37 times.
✓ Branch 1 taken 3170 times.
✓ Branch 3 taken 37 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<int>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<void>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::test_coro::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 4 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
5130x static auto* const rmr = get_recycling_memory_resource();
151
152 5130x auto* mr = get_current_frame_allocator();
153
58/100
boost::capy::io_awaitable_promise_base<boost::capy::custom_transform_coro::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::env_test_coro::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 6 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::tag_test_coro::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 4 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<bool>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 4 times.
✓ Branch 1 taken 17 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<unsigned long> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1390 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<double>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<int>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 42 times.
✓ Branch 1 taken 287 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 4 times.
✓ Branch 1 taken 10 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, boost::capy::io_result<> > >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 7 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, int> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 14 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::stop_token>::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, int> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, boost::capy::io_result<unsigned long> > >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int, int, int, int, int, int> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 16 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate, int> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<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>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, int> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 27 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, int> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, boost::capy::io_result<unsigned long> > >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, int> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int, int, int, int, int> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 9 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 17 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, int> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<unsigned long>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 4 times.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 2674 times.
✓ Branch 1 taken 533 times.
boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<int>::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<void>::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::test_coro::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 5 times.
✗ Branch 1 not taken.
5130x if(!mr)
154 2748x mr = std::pmr::get_default_resource();
155
156 5130x auto total = size + sizeof(std::pmr::memory_resource*);
157 void* raw;
158
60/100
boost::capy::io_awaitable_promise_base<boost::capy::custom_transform_coro::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::env_test_coro::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
boost::capy::io_awaitable_promise_base<boost::capy::tag_test_coro::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<bool>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 17 times.
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 4 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<unsigned long> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1388 times.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<double>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<int>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 268 times.
✓ Branch 1 taken 61 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 8 times.
✓ Branch 1 taken 6 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, boost::capy::io_result<> > >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 7 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 14 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::stop_token>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, boost::capy::io_result<unsigned long> > >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int, int, int, int, int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 4 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 14 times.
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<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>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 26 times.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, boost::capy::io_result<unsigned long> > >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int, int, int, int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, int> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<unsigned long>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 3 times.
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 213 times.
✓ Branch 1 taken 2994 times.
boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<int>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<void>::promise_type>::operator new(unsigned long):
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::test_coro::promise_type>::operator new(unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 5 times.
5130x if(mr == rmr)
159 raw = static_cast<recycling_memory_resource*>(mr)
160
42/50
boost::capy::io_awaitable_promise_base<boost::capy::custom_transform_coro::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::env_test_coro::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::tag_test_coro::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<bool>::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 17 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<unsigned long> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1388 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<double>::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<int>::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 268 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 8 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, boost::capy::io_result<> > >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 7 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, int> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 14 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::stop_token>::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, int> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, boost::capy::io_result<unsigned long> > >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int, int, int, int, int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 14 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate, int> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<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>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, int> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 26 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, int> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, boost::capy::io_result<unsigned long> > >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, int> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int, int, int, int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 9 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 17 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, int> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<unsigned long>::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 213 times.
boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<int>::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<void>::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::test_coro::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
2027x ->allocate_fast(total, alignof(std::max_align_t));
161 else
162
18/50
boost::capy::io_awaitable_promise_base<boost::capy::custom_transform_coro::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::env_test_coro::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 6 times.
boost::capy::io_awaitable_promise_base<boost::capy::tag_test_coro::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<bool>::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<unsigned long> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<double>::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<int>::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 61 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 6 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, boost::capy::io_result<> > >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, int> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::stop_token>::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, int> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, boost::capy::io_result<unsigned long> > >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int, int, int, int, int, int> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate, int> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<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>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, int> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, int> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, boost::capy::io_result<unsigned long> > >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, int> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int, int, int, int, int> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, int> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate> >::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<unsigned long>::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 2994 times.
boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<int>::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<void>::promise_type>::operator new(unsigned long):
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::test_coro::promise_type>::operator new(unsigned long):
✓ Branch 1 taken 5 times.
3103x raw = mr->allocate(total, alignof(std::max_align_t));
163 5130x std::memcpy(static_cast<char*>(raw) + size, &mr, sizeof(mr));
164 5130x return raw;
165 }
166
167 /** Deallocate a coroutine frame.
168
169 Reads the allocator pointer stored at the end of the frame
170 to ensure correct deallocation regardless of current TLS.
171 Bypasses virtual dispatch for the recycling allocator.
172 */
173 5130x static void operator delete(void* ptr, std::size_t size) noexcept
174 {
175
123/200
boost::capy::io_awaitable_promise_base<boost::capy::custom_transform_coro::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::env_test_coro::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 5 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::tag_test_coro::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 3 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<bool>::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 5 times.
✓ Branch 1 taken 16 times.
✓ Branch 3 taken 5 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 2 times.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<unsigned long> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 14 times.
✓ Branch 1 taken 1377 times.
✓ Branch 3 taken 14 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<double>::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<int>::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 10 times.
✓ Branch 1 taken 319 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 6 times.
✓ Branch 1 taken 8 times.
✓ Branch 3 taken 6 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, boost::capy::io_result<> > >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 6 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 13 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::stop_token>::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, boost::capy::io_result<unsigned long> > >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int, int, int, int, int, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 3 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 16 times.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<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>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 25 times.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, boost::capy::io_result<unsigned long> > >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int, int, int, int, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 8 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 16 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 3 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 2 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 1 time.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<unsigned long>::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 5 times.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 37 times.
✓ Branch 1 taken 3170 times.
✓ Branch 3 taken 37 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<int>::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<void>::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::test_coro::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 4 times.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
5130x static auto* const rmr = get_recycling_memory_resource();
176
177 std::pmr::memory_resource* mr;
178 5130x std::memcpy(&mr, static_cast<char*>(ptr) + size, sizeof(mr));
179 5130x auto total = size + sizeof(std::pmr::memory_resource*);
180
60/100
boost::capy::io_awaitable_promise_base<boost::capy::custom_transform_coro::promise_type>::operator delete(void*, unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::env_test_coro::promise_type>::operator delete(void*, unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
boost::capy::io_awaitable_promise_base<boost::capy::tag_test_coro::promise_type>::operator delete(void*, unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<bool>::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 17 times.
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 4 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<unsigned long> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1388 times.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<double>::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<int>::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 268 times.
✓ Branch 1 taken 61 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 8 times.
✓ Branch 1 taken 6 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, boost::capy::io_result<> > >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 7 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 14 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::stop_token>::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, boost::capy::io_result<unsigned long> > >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int, int, int, int, int, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 4 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 14 times.
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<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>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 26 times.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, boost::capy::io_result<unsigned long> > >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int, int, int, int, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 9 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 17 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, int> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate> >::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<unsigned long>::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 3 times.
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 213 times.
✓ Branch 1 taken 2994 times.
boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<int>::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<void>::promise_type>::operator delete(void*, unsigned long):
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
boost::capy::io_awaitable_promise_base<boost::capy::test_coro::promise_type>::operator delete(void*, unsigned long):
✗ Branch 0 not taken.
✓ Branch 1 taken 5 times.
5130x if(mr == rmr)
181 static_cast<recycling_memory_resource*>(mr)
182 2027x ->deallocate_fast(ptr, total, alignof(std::max_align_t));
183 else
184 3103x mr->deallocate(ptr, total, alignof(std::max_align_t));
185 5130x }
186
187 5130x ~io_awaitable_promise_base()
188 {
189 // Abnormal teardown: destroy orphaned continuation
190
51/100
boost::capy::io_awaitable_promise_base<boost::capy::custom_transform_coro::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::env_test_coro::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
boost::capy::io_awaitable_promise_base<boost::capy::tag_test_coro::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<bool>::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 21 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<unsigned long> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1391 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<double>::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<int>::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 329 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 14 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, boost::capy::io_result<> > >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 7 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, int> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 14 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::stop_token>::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, int> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, std::monostate> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, boost::capy::io_result<unsigned long> > >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int, int, int, int, int, int> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 18 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate, int> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<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>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, int> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate, std::monostate> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 27 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, int> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, boost::capy::io_result<unsigned long> > >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, int> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, std::monostate> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int, int, int, int, int> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 9 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 17 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::monostate> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, int> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate, std::monostate> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate> >::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<unsigned long>::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 7 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::~io_awaitable_promise_base():
✓ Branch 3 taken 123 times.
✓ Branch 4 taken 3084 times.
boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<int>::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::test::custom_task<void>::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
boost::capy::io_awaitable_promise_base<boost::capy::test_coro::promise_type>::~io_awaitable_promise_base():
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
5130x if(cont_ != std::noop_coroutine())
191 123x cont_.destroy();
192 5130x }
193
194 //----------------------------------------------------------
195 // Continuation support
196 //----------------------------------------------------------
197
198 /** Store the continuation to resume on completion.
199
200 Call this from your coroutine type's `await_suspend` overload
201 to set up the completion path. The `final_suspend` awaiter
202 returns this handle via unconditional symmetric transfer.
203
204 @param cont The continuation to resume on completion.
205 */
206 5049x void set_continuation(std::coroutine_handle<> cont) noexcept
207 {
208 5049x cont_ = cont;
209 5049x }
210
211 /** Return and consume the stored continuation handle.
212
213 Resets the stored handle to `noop_coroutine()` so the
214 destructor will not double-destroy it.
215
216 @return The continuation for symmetric transfer.
217 */
218 4984x std::coroutine_handle<> continuation() const noexcept
219 {
220 4984x return std::exchange(cont_, std::noop_coroutine());
221 }
222
223 //----------------------------------------------------------
224 // Environment support
225 //----------------------------------------------------------
226
227 /** Store a pointer to the execution environment.
228
229 Call this from your coroutine type's `await_suspend`
230 overload to make the environment available via
231 `co_await this_coro::environment`. The pointed-to
232 `io_env` must outlive this coroutine.
233
234 @param env The environment to store.
235 */
236 5127x void set_environment(io_env const* env) noexcept
237 {
238 5127x env_ = env;
239 5127x }
240
241 /** Return the stored execution environment.
242
243 @return The environment.
244 */
245 16736x io_env const* environment() const noexcept
246 {
247
45/90
boost::capy::io_awaitable_promise_base<boost::capy::task<bool>::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 28 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<boost::capy::io_result<unsigned long> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 4870 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<double>::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<int>::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 513 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 16 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, boost::capy::io_result<> > >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 19 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::pair<unsigned long, int> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 40 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::stop_token>::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 1 time.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, int> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<boost::capy::io_result<>, std::monostate> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, boost::capy::io_result<unsigned long> > >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int, int, int, int, int, int> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int, int> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, int> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 54 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate, int> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int, std::monostate> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<int> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<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>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, int> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate, std::monostate> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::tuple<std::monostate, std::monostate> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 81 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, boost::capy::io_result<> > >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<>, int> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, boost::capy::io_result<unsigned long> > >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, int> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<boost::capy::io_result<unsigned long>, std::monostate> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int, int, int, int, int> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int, int> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int, int> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 27 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, int> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 51 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int, std::monostate> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<int> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::monostate> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, int> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 9 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate, std::monostate> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<std::variant<std::monostate, std::monostate> >::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 9 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<unsigned long>::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 19 times.
boost::capy::io_awaitable_promise_base<boost::capy::task<void>::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 10881 times.
boost::capy::io_awaitable_promise_base<boost::capy::test_coro::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
16736x BOOST_CAPY_ASSERT(env_);
248 16736x return env_;
249 }
250
251 /** Transform an awaitable before co_await.
252
253 Override this in your derived promise type to customize how
254 awaitables are transformed. The default implementation passes
255 the awaitable through unchanged.
256
257 @param a The awaitable expression from `co_await a`.
258
259 @return The transformed awaitable.
260 */
261 template<typename A>
262 decltype(auto) transform_awaitable(A&& a)
263 {
264 return std::forward<A>(a);
265 }
266
267 /** Intercept co_await expressions.
268
269 This function handles @ref this_coro::environment_tag and
270 the fine-grained tags (@ref this_coro::executor_tag,
271 @ref this_coro::stop_token_tag, @ref this_coro::frame_allocator_tag)
272 specially, returning an awaiter that yields the stored value.
273 All other awaitables are delegated to @ref transform_awaitable.
274
275 @param t The awaited expression.
276
277 @return An awaiter for the expression.
278 */
279 template<typename T>
280 9278x auto await_transform(T&& t)
281 {
282 using Tag = std::decay_t<T>;
283
284 if constexpr (std::is_same_v<Tag, this_coro::environment_tag>)
285 {
286 37x BOOST_CAPY_ASSERT(env_);
287 struct awaiter
288 {
289 io_env const* env_;
290 35x bool await_ready() const noexcept { return true; }
291 2x void await_suspend(std::coroutine_handle<>) const noexcept { }
292 34x io_env const* await_resume() const noexcept { return env_; }
293 };
294 37x return awaiter{env_};
295 }
296 else if constexpr (std::is_same_v<Tag, this_coro::executor_tag>)
297 {
298 3x BOOST_CAPY_ASSERT(env_);
299 struct awaiter
300 {
301 executor_ref executor_;
302 2x bool await_ready() const noexcept { return true; }
303 void await_suspend(std::coroutine_handle<>) const noexcept { }
304 2x executor_ref await_resume() const noexcept { return executor_; }
305 };
306 3x return awaiter{env_->executor};
307 }
308 else if constexpr (std::is_same_v<Tag, this_coro::stop_token_tag>)
309 {
310 15x BOOST_CAPY_ASSERT(env_);
311 struct awaiter
312 {
313 std::stop_token token_;
314 14x bool await_ready() const noexcept { return true; }
315 void await_suspend(std::coroutine_handle<>) const noexcept { }
316 14x std::stop_token await_resume() const noexcept { return token_; }
317 };
318 15x return awaiter{env_->stop_token};
319 }
320 else if constexpr (std::is_same_v<Tag, this_coro::frame_allocator_tag>)
321 {
322 8x BOOST_CAPY_ASSERT(env_);
323 struct awaiter
324 {
325 std::pmr::memory_resource* frame_allocator_;
326 6x bool await_ready() const noexcept { return true; }
327 void await_suspend(std::coroutine_handle<>) const noexcept { }
328 7x std::pmr::memory_resource* await_resume() const noexcept { return frame_allocator_; }
329 };
330 8x return awaiter{env_->frame_allocator};
331 }
332 else
333 {
334 7058x return static_cast<Derived*>(this)->transform_awaitable(
335 9215x std::forward<T>(t));
336 }
337 }
338 };
339
340 } // namespace capy
341 } // namespace boost
342
343 #endif
344