我需要尽可能复用io_context,毕竟每次分配新的io_context对象有开销
之前我试过,只要执行了io_context.stop()后,如果再执行io_context.restart()和io_context.run(),会不正常,卡住,此时就不能复用io_context对象。
所以在一定范围内改为只要执行了stop(),就释放掉io_context,重新分配一个新的io_context。
io_context.run()在执行完所有活之后(本例子里只有两个活儿async_wait、async_write),会自动退出run循环,不需要stop()。
run()和async_wait/async_write合并在同一个线程里的话,event相关的那些全都可以删了。
问题是为什么run和async_wait/async_write不能放在不同的线程,这个有空dig一下
【 在 perduamour 的大作中提到: 】
: B
: 去掉Event相关的代码,两处if (timer_done && write_done) 后
: io_context.stop()
: ...................
--
修改:z16166 FROM 222.131.206.*
FROM 222.131.206.*