5#ifndef BEAST_TEST_YIELD_TO_HPP
6#define BEAST_TEST_YIELD_TO_HPP
8#include <boost/asio/executor_work_guard.hpp>
9#include <boost/asio/io_context.hpp>
10#include <boost/asio/spawn.hpp>
11#include <boost/optional.hpp>
12#include <boost/thread/csbl/memory/allocator_arg.hpp>
31 boost::asio::io_context
ios_;
34 boost::optional<boost::asio::executor_work_guard<
35 boost::asio::io_context::executor_type>>
62 boost::asio::io_context&
80 template <
class... FN>
84 template <
class F0,
class... FN>
95 template <
class F0,
class... FN>
97 spawn(F0&& f, FN&&... fn);
100template <
class F0,
class... FN>
110template <
class F0,
class... FN>
116 boost::allocator_arg,
117 boost::context::fixedsize_stack(2 * 1024 * 1024),
Mix-in to support tests using asio coroutines.
boost::asio::io_context & get_io_context()
Return the io_context associated with the object.
enable_yield_to(std::size_t concurrency=1)
boost::asio::yield_context yield_context
The type of yield context passed to functions.
std::condition_variable cv_
void yield_to(F0 &&f0, FN &&... fn)
Run one or more functions, each in a coroutine.
boost::asio::io_context ios_
std::vector< std::thread > threads_
boost::optional< boost::asio::executor_work_guard< boost::asio::io_context::executor_type > > work_
T emplace_back(T... args)
T rethrow_exception(T... args)