Tests adopting asio code changes for asio 1.25.0.

This commit is contained in:
Christopher Kohlhoff
2022-11-01 02:44:58 +08:00
committed by Klemens Morgenstern
parent 4a8ced4b6f
commit 19f91bcb32
4 changed files with 33 additions and 10 deletions

View File

@ -34,9 +34,9 @@ struct select_work_guard
template<class Executor> template<class Executor>
struct execution_work_guard struct execution_work_guard
{ {
using executor_type = decltype( using executor_type = typename std::decay<decltype(
net::prefer(std::declval<Executor const&>(), net::prefer(std::declval<Executor const&>(),
net::execution::outstanding_work.tracked)); net::execution::outstanding_work.tracked))>::type;
execution_work_guard(Executor const& exec) execution_work_guard(Executor const& exec)
: ex_(net::prefer(exec, net::execution::outstanding_work.tracked)) : ex_(net::prefer(exec, net::execution::outstanding_work.tracked))

View File

@ -111,7 +111,7 @@ using executor_type =
#else #else
template<class T> template<class T>
using executor_type = using executor_type =
decltype(std::declval<T&>().get_executor()); typename std::decay<decltype(std::declval<T&>().get_executor())>::type;
#endif #endif
/** Determine if `T` has the `get_executor` member function. /** Determine if `T` has the `get_executor` member function.

View File

@ -107,6 +107,11 @@ struct nested_alloc
struct allocator_type struct allocator_type
{ {
}; };
allocator_type get_allocator() const noexcept
{
return allocator_type{};
}
}; };
struct intrusive_alloc struct intrusive_alloc
@ -114,11 +119,21 @@ struct intrusive_alloc
struct allocator_type struct allocator_type
{ {
}; };
allocator_type get_allocator() const noexcept
{
return allocator_type{};
}
}; };
struct no_ex struct no_ex
{ {
using executor_type = net::system_executor; using executor_type = net::system_executor;
executor_type get_executor() const noexcept
{
return executor_type{};
}
}; };
struct nested_ex struct nested_ex
@ -126,6 +141,11 @@ struct nested_ex
struct executor_type struct executor_type
{ {
}; };
executor_type get_executor() const noexcept
{
return executor_type{};
}
}; };
struct intrusive_ex struct intrusive_ex
@ -133,6 +153,11 @@ struct intrusive_ex
struct executor_type struct executor_type
{ {
}; };
executor_type get_executor() const noexcept
{
return executor_type{};
}
}; };
template<class E, class A> template<class E, class A>

View File

@ -186,7 +186,7 @@ public:
if (blocking_ == net::execution::blocking.possibly) if (blocking_ == net::execution::blocking.possibly)
{ {
s_.on_invoke(); s_.on_invoke();
net::execution::execute(ex_, std::forward<F>(f)); ex_.execute(std::forward<F>(f));
} }
else else
{ {
@ -220,11 +220,9 @@ public:
dispatch(F&& f, Alloc const& a) dispatch(F&& f, Alloc const& a)
{ {
s_.on_invoke(); s_.on_invoke();
net::execution::execute( net::prefer(ex_,
net::prefer(ex_, net::execution::blocking.possibly,
net::execution::blocking.possibly, net::execution::allocator(a)).execute(std::forward<F>(f));
net::execution::allocator(a)),
std::forward<F>(f));
// previously equivalent to // previously equivalent to
// ex_.dispatch(std::forward<F>(f), a); // ex_.dispatch(std::forward<F>(f), a);
} }