Начните новый сложный курс.
template<
typename Handler,
typename Function>
void spawn(
Handler handler,
Function function,
const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
» more...
template<
typename Handler,
typename Function>
void spawn(
basic_yield_context< Handler > ctx,
Function function,
const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
» more...
template<
typename Function>
void spawn(
boost::asio::io_service::strand strand,
Function function,
const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
» more...
template<
typename Function>
void spawn(
boost::asio::io_service & io_service,
Function function,
const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
» more...
Функция spawn()
представляет собой высокоуровневую обертку над Boost. Корутинная библиотека. Эта функция позволяет программам реализовывать асинхронную логику синхронно, как показано на следующем примере:
boost::asio::spawn(my_strand, do_echo);
void do_echo(boost::asio::yield_context yield)
{
try
{
char data[128];
for (;;)
{
std::size_t length =
my_socket.async_read_some(
boost::asio::buffer(data), yield);
boost::asio::async_write(my_socket,
boost::asio::buffer(data, length), yield);
}
}
catch (std::exception& e)
{
}
}
Руководитель: boost/asio/spawn.hpp
Заголовок удобства: Никто