Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 

48 rader
868 B

#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;
}