2011-02-13 50 views
1

对Boost :: asio完全是新的,我是一个旧的Unix选择类型的家伙...在boost :: asio中,如何给服务循环添加超时?

试图获得选择/ epoll像超时功能突破事件循环。 添加一个asio计时器只是调用我的处理程序,但不允许我跳出service.run()循环。不想删除该服务只需稍等片刻,也可以稍后通过service.run()重新启动它。

沿着同样的路线,您如何从服务循环中删除文件描述符一段时间,如EPOLL_CTL_DEL。然后将它添加回来以便再次提供服务?

感谢

回答

1

呼叫io_service.stop()deadline_timer处理程序,所以io_service.run()将返回控制

+0

谢谢,我想通了,像一分钟我张贴后的问题,杜:( 但第二部分仍然有我难倒!如何从循环中移除一个文件描述符(服务对象?),然后将它添加回来? – 2011-02-14 01:08:43