基于C++ Coroutines提案 ‘Stackless Resumable Functions’编写的协程库
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.

librf.cpp 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. 
  2. #include "librf.h"
  3. #include <experimental/resumable>
  4. #include <experimental/generator>
  5. #include <optional>
  6. extern void resumable_main_yield_return();
  7. extern void resumable_main_timer();
  8. extern void resumable_main_suspend_always();
  9. extern void resumable_main_sleep();
  10. extern void resumable_main_routine();
  11. extern void resumable_main_resumable();
  12. extern void resumable_main_mutex();
  13. extern void resumable_main_exception();
  14. extern void resumable_main_event();
  15. extern void resumable_main_event_timeout();
  16. extern void resumable_main_dynamic_go();
  17. extern void resumable_main_channel();
  18. extern void resumable_main_cb();
  19. extern void resumable_main_modern_cb();
  20. extern void resumable_main_multi_thread();
  21. extern void resumable_main_channel_mult_thread();
  22. extern void resumable_main_when_all();
  23. extern void resumable_main_benchmark_mem();
  24. extern void resumable_main_benchmark_asio_server();
  25. extern void resumable_main_benchmark_asio_client(intptr_t nNum);
  26. int main(int argc, const char* argv[])
  27. {
  28. resumable_main_cb();
  29. /*
  30. resumable_main_resumable();
  31. resumable_main_benchmark_mem();
  32. if (argc > 1)
  33. resumable_main_benchmark_asio_client(atoi(argv[1]));
  34. else
  35. resumable_main_benchmark_asio_server();
  36. resumable_main_when_all();
  37. resumable_main_multi_thread();
  38. resumable_main_yield_return();
  39. resumable_main_timer();
  40. resumable_main_suspend_always();
  41. resumable_main_sleep();
  42. resumable_main_routine();
  43. resumable_main_resumable();
  44. resumable_main_mutex();
  45. resumable_main_event();
  46. resumable_main_event_timeout();
  47. resumable_main_dynamic_go();
  48. resumable_main_channel();
  49. resumable_main_cb();
  50. resumable_main_exception();
  51. */
  52. return 0;
  53. }