summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/asio/src/doc/overview/coroutine.qbk
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/asio/src/doc/overview/coroutine.qbk')
-rw-r--r--3rdparty/asio/src/doc/overview/coroutine.qbk51
1 files changed, 0 insertions, 51 deletions
diff --git a/3rdparty/asio/src/doc/overview/coroutine.qbk b/3rdparty/asio/src/doc/overview/coroutine.qbk
deleted file mode 100644
index 67453674eae..00000000000
--- a/3rdparty/asio/src/doc/overview/coroutine.qbk
+++ /dev/null
@@ -1,51 +0,0 @@
-[/
- / Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com)
- /
- / Distributed under the Boost Software License, Version 1.0. (See accompanying
- / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- /]
-
-[section:coroutine Stackless Coroutines]
-
-The [link asio.reference.coroutine `coroutine`] class provides support for
-stackless coroutines. Stackless coroutines enable programs to implement
-asynchronous logic in a synchronous manner, with minimal overhead, as shown in
-the following example:
-
- struct session : 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()(asio::error_code ec = asio::error_code(), std::size_t n = 0)
- {
- if (!ec) reenter (this)
- {
- for (;;)
- {
- yield socket_->async_read_some(asio::buffer(*buffer_), *this);
- yield asio::async_write(*socket_, asio::buffer(*buffer_, n), *this);
- }
- }
- }
- };
-
-The `coroutine` class is used in conjunction with the pseudo-keywords
-`reenter`, `yield` and `fork`. These are preprocessor macros, and are
-implemented in terms of a `switch` statement using a technique similar to
-Duff's Device. The [link asio.reference.coroutine `coroutine`] class's
-documentation provides a complete description of these pseudo-keywords.
-
-[heading See Also]
-
-[link asio.reference.coroutine coroutine],
-[link asio.examples.cpp03_examples.http_server_4 HTTP Server 4 example],
-[link asio.overview.core.spawn Stackful Coroutines].
-
-[endsect]