【发布时间】:2011-11-04 15:05:50
【问题描述】:
io_service.run_one() 的嵌套调用是否可能不是 boost::asio 的有效使用。
例如,我有一个处理程序,它在套接字上接收到某些内容后执行。 io_service 使用 io_service.run_one() 在另一个线程中运行。因此,在我看来,io_service 将在为接收处理程序提供服务后停止。
然后在接收处理程序中,我再次执行 io_service.run_one() 以便现在通过套接字发回一些东西。这意味着,存在 io_service.run_one() 方法的嵌套/递归调用。
这种行为并没有真正起作用。我的意思是有时 run_one() 方法中有一个块永远不会返回。我也找不到任何有关此特定案例的文档处理。
那么,是否允许递归/嵌套 io_service 执行,或者这不是一个好的行为?
附: io_service.reset() 在每次 run_one() 执行之前使用。
【问题讨论】:
标签: c++ sockets boost asynchronous boost-asio