我知道同一套接字对象的方法的并发调用会导致未定义的行为。
但是在调用第一个完成处理程序之前调用异步操作并再次(非同时)调用它呢?
说,以下(如果有的话)的预期行为是什么:
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 );
?
这似乎是某人不应该做的事情,但我在文档中找不到解决此类问题的任何特定位置。