【发布时间】:2010-02-22 22:36:31
【问题描述】:
我想在重用之前从 IO_service 中删除所有处理程序。这可能吗?
我正在编写涉及asio::io_service 的单元测试。在每个测试用例之间,我想从全局 io_service 中清除处理程序。我以为io_service::reset 会这样做,但事实并非如此。 reset() 只允许恢复 io_service。最后一个测试用例中的所有处理程序仍在排队。
我只需要为单元测试执行此操作,因此任何疯狂的 hack 都会起作用。
更多信息:
io_service 来自 deadline_timer 成员变量。 deadline_timer 是我正在测试的代码的一部分,因此我无法更改它的构造方式。我通过deadline_timer 的get_io_service 方法获得了它的io_service。
【问题讨论】:
-
你不能在你的
setup()方法中创建一个io_service然后在你的teardown()方法中销毁它,可以吗?
标签: c++ boost-asio