robot-piglet e831a80e47 Intermediate changes | 1 year ago | |
---|---|---|
.. | ||
include | b8a17f9b1c Revert ymake build from ydb oss export | 1 year ago |
src | 84f2cfa253 add windows platform to ydb github export | 1 year ago |
CMakeLists.darwin-x86_64.txt | 33ed6077e6 Intermediate changes | 1 year ago |
CMakeLists.linux-aarch64.txt | a9e5890a07 NO_COMPILER_WARNINGS in cmake msvc builds | 1 year ago |
CMakeLists.linux-x86_64.txt | 33ed6077e6 Intermediate changes | 1 year ago |
CMakeLists.txt | 887be65957 External build system generator release 29 | 1 year ago |
README.md | e0ae8d5ab7 Update boost/multiprecision and boost/math to 1.80.0 | 2 years ago |
ya.make | e831a80e47 Intermediate changes | 1 year ago |
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.