2019-04-25 11:35:23 +08:00
|
|
|
|
|
2017-09-24 14:01:30 +08:00
|
|
|
|
#include "librf.h"
|
2020-02-15 13:32:14 +08:00
|
|
|
|
#include <optional>
|
2017-09-24 14:01:30 +08:00
|
|
|
|
|
2020-03-09 08:17:52 +08:00
|
|
|
|
//#define _WITH_LOCK_FREE_Q_KEEP_REAL_SIZE 1
|
|
|
|
|
#include "src/ring_queue.h"
|
|
|
|
|
#include "src/ring_queue_spinlock.h"
|
|
|
|
|
#include "src/ring_queue_lockfree.h"
|
|
|
|
|
#include "../tutorial/test_ring_queue.h"
|
|
|
|
|
|
2017-09-24 14:01:30 +08:00
|
|
|
|
extern void resumable_main_yield_return();
|
|
|
|
|
extern void resumable_main_timer();
|
|
|
|
|
extern void resumable_main_suspend_always();
|
|
|
|
|
extern void resumable_main_sleep();
|
|
|
|
|
extern void resumable_main_routine();
|
|
|
|
|
extern void resumable_main_resumable();
|
|
|
|
|
extern void resumable_main_mutex();
|
|
|
|
|
extern void resumable_main_exception();
|
|
|
|
|
extern void resumable_main_event();
|
2020-03-04 11:23:10 +08:00
|
|
|
|
extern void resumable_main_event_v2();
|
2017-09-24 14:01:30 +08:00
|
|
|
|
extern void resumable_main_event_timeout();
|
|
|
|
|
extern void resumable_main_dynamic_go();
|
|
|
|
|
extern void resumable_main_channel();
|
|
|
|
|
extern void resumable_main_cb();
|
2019-04-21 09:05:04 +08:00
|
|
|
|
extern void resumable_main_modern_cb();
|
2017-10-01 10:33:08 +08:00
|
|
|
|
extern void resumable_main_multi_thread();
|
2017-11-27 18:37:18 +08:00
|
|
|
|
extern void resumable_main_channel_mult_thread();
|
2018-03-27 00:34:31 +08:00
|
|
|
|
extern void resumable_main_when_all();
|
2020-02-19 16:05:19 +08:00
|
|
|
|
extern void resumable_main_layout();
|
2020-02-27 14:05:45 +08:00
|
|
|
|
extern void resumable_main_switch_scheduler();
|
2017-09-24 14:01:30 +08:00
|
|
|
|
|
2020-03-02 14:50:01 +08:00
|
|
|
|
extern void resumable_main_benchmark_mem(bool wait_key);
|
2020-02-16 13:19:06 +08:00
|
|
|
|
extern void benchmark_main_channel_passing_next();
|
2018-08-26 19:06:07 +08:00
|
|
|
|
extern void resumable_main_benchmark_asio_server();
|
|
|
|
|
extern void resumable_main_benchmark_asio_client(intptr_t nNum);
|
2017-09-24 14:36:36 +08:00
|
|
|
|
|
2019-10-09 09:43:10 +08:00
|
|
|
|
int main(int argc, const char* argv[])
|
2017-09-24 14:01:30 +08:00
|
|
|
|
{
|
2020-02-16 12:03:51 +08:00
|
|
|
|
(void)argc;
|
|
|
|
|
(void)argv;
|
2020-03-09 08:17:52 +08:00
|
|
|
|
|
2020-03-09 14:23:35 +08:00
|
|
|
|
//test_ring_queue_simple<resumef::ring_queue<int>>();
|
|
|
|
|
//test_ring_queue<resumef::ring_queue_spinlock<int, false, uint32_t>>();
|
|
|
|
|
//test_ring_queue<resumef::ring_queue_lockfree<int, uint64_t>>();
|
2020-03-09 08:17:52 +08:00
|
|
|
|
|
2020-03-22 14:19:10 +08:00
|
|
|
|
//resumable_main_mutex();
|
|
|
|
|
//return 0;
|
2020-02-16 12:03:51 +08:00
|
|
|
|
|
2020-02-18 11:32:20 +08:00
|
|
|
|
//if (argc > 1)
|
|
|
|
|
// resumable_main_benchmark_asio_client(atoi(argv[1]));
|
|
|
|
|
//else
|
|
|
|
|
// resumable_main_benchmark_asio_server();
|
2020-02-16 13:20:20 +08:00
|
|
|
|
|
2020-03-01 12:13:41 +08:00
|
|
|
|
resumable_main_cb();
|
|
|
|
|
resumable_main_layout();
|
|
|
|
|
resumable_main_modern_cb();
|
|
|
|
|
resumable_main_suspend_always();
|
|
|
|
|
resumable_main_yield_return();
|
2020-03-01 13:17:04 +08:00
|
|
|
|
resumable_main_resumable();
|
2020-03-01 12:13:41 +08:00
|
|
|
|
resumable_main_routine();
|
|
|
|
|
resumable_main_exception();
|
|
|
|
|
resumable_main_dynamic_go();
|
2020-03-01 13:17:04 +08:00
|
|
|
|
resumable_main_multi_thread();
|
2020-03-01 12:13:41 +08:00
|
|
|
|
resumable_main_timer();
|
2020-03-02 14:50:01 +08:00
|
|
|
|
resumable_main_benchmark_mem(false);
|
2020-03-01 12:13:41 +08:00
|
|
|
|
resumable_main_mutex();
|
|
|
|
|
resumable_main_event();
|
2020-03-10 21:31:05 +08:00
|
|
|
|
resumable_main_event_v2();
|
2020-03-01 12:13:41 +08:00
|
|
|
|
resumable_main_event_timeout();
|
|
|
|
|
resumable_main_channel();
|
|
|
|
|
resumable_main_channel_mult_thread();
|
|
|
|
|
resumable_main_sleep();
|
|
|
|
|
resumable_main_when_all();
|
|
|
|
|
resumable_main_switch_scheduler();
|
|
|
|
|
std::cout << "ALL OK!" << std::endl;
|
|
|
|
|
|
2020-03-01 13:17:04 +08:00
|
|
|
|
benchmark_main_channel_passing_next(); //这是一个死循环测试
|
|
|
|
|
|
2017-09-24 14:01:30 +08:00
|
|
|
|
return 0;
|
|
|
|
|
}
|