1
同じソケットオブジェクトのメソッドを同時に呼び出すと、未定義の動作が発生することがわかります。前の呼び出しが完了する前にboost ASIO async_receive()をもう一度呼び出す
しかし、非同期操作を呼び出して、最初の補完ハンドラが呼び出される前にもう一度(非同期に)呼び出すのはどうでしょうか?
boost::asio::ip::udp::socket socket;
// make socket join a multicast group, for instance
socket.async_receive(boost::asio::null_buffers() , & handler1);
// assume handler1() is not called between this two lines
socket.async_receive(boost::asio::null_buffers() , & handler2);
:
セイ、(もしあれば)次の予想される動作は何ですか?
これは誰かがやってはいけないことですが、そのような問題が解決された特定の場所をドキュメントで見つけることができませんでした。