Code Oops Coroutine Example
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

26 lines
752 B

#include <iostream>
#include "coroutine.h"
int main() {
std::unique_ptr<cops::coro_t> coro;
std::unique_ptr<cops::coro_t> sub_coro;
coro = cops::make_coro([&sub_coro]() {
std::cout << "coro" << std::endl;
cops::current->switch_out();
sub_coro = cops::make_coro([]() {
std::cout << "sub_coro" << std::endl;
cops::current->switch_out();
std::cout << "sub_coro exit" << std::endl;
});
sub_coro->switch_in();
std::cout << "coro exit" << std::endl;
});
std::cout << "main" << std::endl;
coro->switch_in();
std::cout << "main" << std::endl;
coro->switch_in();
std::cout << "main" << std::endl;
sub_coro->switch_in();
std::cout << "exit" << std::endl;
return 0;
}