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>
struct execution_work_guard
{
using executor_type = decltype(
net::prefer(std::declval<Executor const&>(),
net::execution::outstanding_work.tracked));
using executor_type = typename std::decay<decltype(
net::prefer(std::declval<Executor const&>(),
net::execution::outstanding_work.tracked))>::type;
execution_work_guard(Executor const& exec)
: ex_(net::prefer(exec, net::execution::outstanding_work.tracked))

View File

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

View File

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

View File

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