Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Stackless Coroutines

Boost , Boost.Asio , Core Concepts and Functionality

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Класс<coroutine>обеспечивает поддержку стековых корутин. Корутины без стека позволяют программам реализовывать асинхронную логику синхронно, с минимальными накладными расходами, как показано в следующем примере:

struct session : boost::asio::coroutine
{
  boost::shared_ptr<tcp::socket> socket_;
  boost::shared_ptr<std::vector<char> > buffer_;
  session(boost::shared_ptr<tcp::socket> socket)
    : socket_(socket),
      buffer_(new std::vector<char>(1024))
  {
  }
  void operator()(boost::system::error_code ec = boost::system::error_code(), std::size_t n = 0)
  {
    if (!ec) reenter (this)
    {
      for (;;)
      {
        yield socket_->async_read_some(boost::asio::buffer(*buffer_), *this);
        yield boost::asio::async_write(*socket_, boost::asio::buffer(*buffer_, n), *this);
      }
    }
  }
};

Класс<coroutine>используется в сочетании с псевдоключевыми словами<reenter>,<yield>и<fork>. Они являются препроцессорными макросами и реализуются в виде<switch>заявления с использованием метода, аналогичного устройству Даффа. В документации класса<coroutine>приводится полное описание этих псевдоключевых слов.

See Also

coroutine,HTTP Server 4 example,Stackful Coroutines.


PrevUpHomeNext

Статья Stackless Coroutines раздела Boost.Asio Core Concepts and Functionality может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Core Concepts and Functionality ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 18:25:44/0.006260871887207/0