daskol

cactus-example.cc

Aug 4th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.79 KB | None | 0 0
  1. $ cat cactus-example.cc            
  2. #include <iostream>                
  3. #include <cactus/scheduler.h>
  4.  
  5. int main(int argc, char *argv[]) {
  6.     NCactus::TScheduler sched;
  7.     sched.Run([] (void) {
  8.         std::cerr << "schedule fiber A\n";
  9.         NCactus::Go([] (void) {
  10.             std::cerr << "A#1\n";
  11.             NCactus::Yield();
  12.             std::cerr << "A#2\n";
  13.         });
  14.         NCactus::Yield();
  15.  
  16.         std::cerr << "schedule fiber B\n";
  17.         NCactus::Go([] (void) {
  18.             std::cerr << "B#1\n";
  19.             NCactus::Yield();
  20.             std::cerr << "B#2\n";
  21.         });
  22.         NCactus::Yield();
  23.  
  24.         std::cerr << "wait?\n";
  25.     });
  26.     std::cerr << "done.\n";
  27.     return 0;
  28. }
  29. $ ./a.out
  30. schedule fiber A
  31. A#1
  32. schedule fiber B
  33. A#2
  34. B#1
  35. wait?
  36. done.
Advertisement
Add Comment
Please, Sign In to add comment