私はかなり新しいasioフレームワークですので、親切にしてください。 私はいくつかのブーストASIO例を調査し、人々はこのように呼んで非同期使用することを発見しました:ブースト:非同期呼び出しで複数の再帰を使用するのは安全ですか?
void read()
{
async_read(socket_, boost::asio::buffer(&user_[0], user_.size()),
boost::bind(&Connection::handle_user_read, this,
placeholders::error, placeholders::bytes_transferred));
}
void handle_user_read(...)
{
...
read();
...
}
私はそれは、複数の再帰を使用しているため、このコードは安全ではないと思います。 これは、コールスタックのオーバーフローのために多くの読み取り操作が実行された場合に使用できません。 私はこれについて100%確信しておらず、他の人と同様の考えを見つけることができません。
誰でも詳細に説明できますか?
So:はい、それは安全です。これは、ブーストのドキュメントでそれを行う方法です。 – Unda
ありがとう、私はそれについて考えなかった。今は完全にクリアです。 –