#include "rigid_paradise/piano/piano.h"
|
|
#include <iostream>
|
|
#include <thread>
|
|
#include <chrono>
|
|
|
|
using namespace std::chrono_literals;
|
|
|
|
std::mutex cout_tex;
|
|
volatile int dummy;
|
|
void a()
|
|
{
|
|
dummy = 1;
|
|
}
|
|
|
|
int piano(std::vector<std::string_view>&& args) {
|
|
std::cout<<"Hello piano!"<<std::endl;
|
|
auto root = rp_piano::coro{
|
|
[](rp_piano::coro&){
|
|
std::lock_guard _l(cout_tex);
|
|
std::cout<<"Hello coro"<<std::endl;
|
|
}
|
|
};
|
|
root.then(
|
|
[](rp_piano::coro&){
|
|
std::lock_guard _l(cout_tex);
|
|
std::cout<<"Hello continuation"<<std::endl;
|
|
}
|
|
).then(
|
|
[](rp_piano::coro&){
|
|
std::lock_guard _l(cout_tex);
|
|
std::cout<<"Hello continuation of continuation"<<std::endl;
|
|
auto i = 100000000;
|
|
while(i>0) {
|
|
spawn(
|
|
[=](rp_piano::coro& me){
|
|
a();
|
|
me.reschedule();
|
|
}
|
|
);
|
|
--i;
|
|
}
|
|
}
|
|
);
|
|
spawn(
|
|
std::move(root)
|
|
);
|
|
return 0;
|
|
}
|