1. 你的代码里没有看见io_context.run()在哪儿,你说把io_context.run放到WaitEvent之前,是指你手动改的代码?那你原来代码里io_context.run()是在哪儿运行的?
2. 如果你至始至终只有一个线程运行io_context.run(),那显然你不能阻塞这个线程。因为io_context本身不是thread_pool,是不带worker的,哪个线程运行run,哪个线程是worker,io_context本身只是一个事件队列而已。
【 在 z16166 的大作中提到: 】
: 我需要尽可能复用io_context,毕竟每次分配新的io_context对象有开销
: 之前我试过,只要执行了io_context.stop()后,如果再执行io_context.restart()和io_context.run(),会不正常,卡住,此时就不能复用io_context对象。
: 所以在一定范围内改为只要执行了stop(),就释放掉io_context,重新分配一个新的io_context。
: ...................
--
FROM 125.119.102.*