私はかなり単純なboost::asioセットアップを使用しています。ここでは、メインスレッドからio_service.run()を呼び出します。私はtcpリゾルバーを持っており、非同期リゾルブを使用してアドレスを検索します。そのルックアップが失敗すると、非同期コールバック内で例外をスローします。この例外は、run()呼び出しの外部、メイン関数の内部でキャッチします。次に、io_serviceインスタンス(グローバル)でstop()を呼び出します。ただし、main()が戻ると、プログラムはハングします。リゾルバーサービスからは決して来ないexit_event_を待っていることがわかりました。
出口にぶら下がったくありません。私が間違っていることはありますか?もしそうなら、何ですか?私はこれらのことについてオンラインで多くの議論を見つけていません。Windows7/64ビットでboost1.41.0を使用しています。