Re:Protothreads: Lightweight Stackless Threads in C
by manwe150 on Thursday May 16, 2019 @11:34AM
(#19929940)
Excitingly, we soon may be able to have both (if you can compile your C code with a C++ compiler). Coroutines are in the working draft for the C++20 spec, so they may soon be provided by the runtime (and thus integrate into all of the other language features and syntax) instead of requiring hacking it up with string macros: https://en.cppreference.com/w/cpp/language/coroutines
[ Parent
| on HN ]
Re:Protothreads: Lightweight Stackless Threads in C
by alexhutcheson on Thursday May 16, 2019 @01:30PM
(#19930980)
If you want coroutines before upgrading to a C++20 toolchain, you can also try:
- boost::Fiber for C++: https://www.boost.org/doc/libs/1_70_0/libs/fiber/doc/html/in...
- boost::coroutine2 for C++: https://www.boost.org/doc/libs/1_70_0/libs/coroutine2/doc/ht... (lower level than boost::Fiber, and doesn't include an internal scheduler)
- libtask for C: https://swtch.com/libtask/
In the C++ context, this doc summarizes the distinction between "fibers" and "coroutines", although the terminology is not consistent across language ecosystems: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n402...