News for hackers. Stuff that matters.
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
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...

Re:Protothreads: Lightweight Stackless Threads in C by kitd on Friday May 17, 2019 @05:13AM (#19937719)
D also has fibers, and good C/C++ integration, so that could be an option too.

http://ddili.org/ders/d.en/fibers.html