recvfrom()呼び出しを待機しているスレッドがブロック解除されてエラーで戻るようにする「良い」方法はありますか?
この動機は、UDPデータグラムを読み取るユニットを含むシステムのユニットテストを作成することです。ブランチの1つは、recvfrom呼び出し自体のエラーを処理します。コードは、さまざまなタイプのエラーを区別する必要はなく、フラグを設定するだけです。
別のスレッドからソケットを閉じるか、ソケットをシャットダウンして、recvfromがエラーで返されるようにすることを考えましたが、これは少し手間がかかるようです。特大のパケットを送信することでそれが可能であるという言及を他の場所で見たので、16Kバッファが4Kだけを待っているrecvfromに送信される実験を設定しましたが、エラーにはなりませんでした。recvfromは4096を返すだけで、そのバイト数を取得したことを示します。