2011-02-13 66 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

相關問題