From: Yukihiro Matsumoto Date: 2010-06-13T07:44:59+09:00 Subject: [ruby-dev:41598] Re: [Bug #3433] Error that occurs by BasicSocket#sendmsg まつもと ゆきひろです In message "Re: [ruby-dev:41597] [Bug #3433] Error that occurs by BasicSocket#sendmsg" on Sun, 13 Jun 2010 03:06:34 +0900, Masaya Tarui writes: |r24199と関連するのですが、sendmsgが実装されていない場合に発生するエラーとして、 |こちらの環境ではNotImplementedErrorではなくErrno::ENOSYSが発生します。 CRubyでは、下のレイヤーがエラーを返せばそのまま返します。正直、 sendmsgというシステムコールはあるが、呼ぶと必ずENOSYSを返す変 なプラットフォームが存在した場合、それをドキュメントでカバー できるかというとかなり疑問です。 |ドキュメントにはエラーについて書いていないのですが、どちらが正解かまた両方ありえるのか、 |どうなんでしょうか? | |これで、 |test_udp_server(TestSocket) |test_sendmsg_nonblock_error(TestSocketNonblock) |がErrorになっています。 どうすべきなんでしょうね。 * mswin32ではsendmsgは非対応にする。ifdefで外す * ドキュメントにENOSYSを返すことがあると明記。テストもそれ にあわせて変更 * sendmsgがENOSYSを返したらNotImplementedErrorを返すように どれもありえるとは思うのですが。 まつもと ゆきひろ /:|)