Информация об изменениях

Сообщение Re: Асинхронщина от 25.12.2025 0:58

Изменено 25.12.2025 1:04 antropolog

Re: Асинхронщина
Здравствуйте, Videoman, Вы писали:

в азио есть несколько политик по работе с асинхронностью, задаются так называемыми completion token, которые определяют механизм возврата результата асинхронной функции. В частности есть токен use_future, для него асинх. операция возвратит фьючер

// передаём токен use_future последним аргументом
std::future<std::size_t> future_read = 
    boost::asio::async_read_until(socket, boost::asio::dynamic_buffer(line), '\n', boost::asio::use_future);

// get() ждёт результат, подобно await в javascript
const size_t result = future_read.get();
Re: Асинхронщина
Здравствуйте, Videoman, Вы писали:

в азио есть несколько политик по работе с асинхронностью, задаются так называемыми completion token, которые определяют механизм возврата результата асинхронной функции. В частности есть токен use_future, для него асинх. операция возвратит фьючер

// передаём токен use_future последним аргументом
std::string line;
std::future<std::size_t> future_read = 
    boost::asio::async_read_until(socket, boost::asio::dynamic_buffer(line), '\n', boost::asio::use_future);

// get() ждёт результат, подобно await в javascript
const size_t bytes_transferred = future_read.get();
if (bytes_transferred != 0)
{
  // do something with line
}