.. | ||
build | ||
doc | ||
example | ||
include/boost/coroutine | ||
meta | ||
performance | ||
src | ||
test | ||
.gitattributes | ||
.gitignore | ||
CMakeLists.txt | ||
index.html | ||
Jamroot.jam | ||
README.md |
boost.coroutine
boost.coroutine provides templates for generalized subroutines which allow multiple entry points for suspending and resuming execution at certain locations. It preserves the local state of execution and allows re-entering subroutines more than once (useful if state must be kept across function calls).
Coroutines can be viewed as a language-level construct providing a special kind of control flow.
In contrast to threads, which are pre-emptive, coroutines switches are cooperative (programmer controls when a switch will happen). The kernel is not involved in the coroutine switches.
Note that boost.coroutine is deprecated - boost.coroutine2 is its successor. If you are forced to use a pre-C++11 compiler you should still use boost.coroutine.