#include #include #include #include coroutine Coroutine {}; void main(Coroutine& this) { while(true) { sout | "Coroutine 1" | endl; yield(); sout | "Coroutine 2" | endl; suspend(); } } int main(int argc, char* argv[]) { Coroutine c; for(int i = 0; i < 1_000; i++) { sout | "Thread 1" | endl; resume(c); sout | "Thread 2" | endl; yield(); } }