boost::asio:io_service
多くの tcp 接続を処理するために(シングル スレッド) a を使用しています。接続ごとに、deadline_timer を使用してタイムアウトをキャッチします。いずれかの接続がタイムアウトした場合、他の接続の結果は使用できません。したがって、io_service を完全に再起動したいと考えています。io_service.stop()
呼び出すと、キュー内の「終了した」ハンドラーを呼び出すことができ、キュー内のハンドラーをエラーで呼び出すことができると思いました。
ただし、ハンドラーがキューに残っているように見えるため、呼び出しio_service.reset()
て後でio_service.run()
古いハンドラーを元に戻します。io_service.stop()
が呼び出された後でも、ハンドラーが実際にキューに残っていることを誰でも確認できますか。もしそうなら、io_service を完全にリセットする可能性は何ですか?