include/boost/capy/ex/io_awaitable_promise_base.hpp
90.2% Lines (1421/1576)
100.0% List of functions (306/306)
59.0% Branches (525/890)
Functions (306)
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<> > >::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<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> > > >::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::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<> > >::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<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> > > >::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::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<> > >::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<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> > > >::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::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<> > >::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<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> > > >::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::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<> > >::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<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> > > >::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::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<> > >::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<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> > > >::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::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<> > >::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<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> > > >::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::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 |
112/180boost::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<> > >::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<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 17 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> > > >::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 3 times.
✓ 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::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 3198 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 |
53/90boost::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<> > >::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<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 17 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> > > >::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 4 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::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 561 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 |
54/90boost::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<> > >::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 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<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 15 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> > > >::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 4 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::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 240 times.
✓ Branch 1 taken 2995 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 |
37/45boost::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<> > >::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 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<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 15 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> > > >::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 4 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::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 240 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 |
17/45boost::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<> > >::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 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<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> > > >::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::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 2995 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 |
112/180boost::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<> > >::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<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 17 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> > > >::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 3 times.
✓ 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::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 3198 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 |
54/90boost::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<> > >::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<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<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 15 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> > > >::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 4 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::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 240 times.
✓ Branch 1 taken 2995 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 |
46/90boost::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<> > >::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<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 19 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> > > >::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 4 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::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 116 times.
✓ Branch 4 taken 3119 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 | 116x | 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 | 4991x | std::coroutine_handle<> continuation() const noexcept | ||
| 219 | { | |||
| 220 | 4991x | 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 | 16743x | io_env const* environment() const noexcept | ||
| 246 | { | |||
| 247 |
40/80boost::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<> > >::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<>, 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<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 57 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> > > >::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 12 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::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 10972 times.
boost::capy::io_awaitable_promise_base<boost::capy::test_coro::promise_type>::environment() const:
✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
|
16743x | BOOST_CAPY_ASSERT(env_); | |
| 248 | 16743x | 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 |