From: Tanaka Akira Date: 2010-06-13T23:39:48+09:00 Subject: [ruby-dev:41602] Re: [Bug #3433] Error that occurs by BasicSocket#sendmsg 2010年6月13日3:06 Masaya Tarui : > > r24199と関連するのですが、sendmsgが実装されていない場合に発生するエラーとして、 > こちらの環境ではNotImplementedErrorではなくErrno::ENOSYSが発生します。 Windows 上の ruby における sendmsg の実装をよく分かっていないのですが、 コンパイルした環境から他の環境にバイナリをコピーすると動いたり動かなかったり することはあるでしょうか。 Unix では、カーネルがシステムコールをサポートしていれば動くし、 サポートしていなければ動かない (ENOSYS) ので、そういうことがあり得ます。 もし Windows でもそうなら、少なくとも #ifdef でコンパイル時に挙動を 決めてしまうのはよろしくないでしょう。 > ドキュメントにはエラーについて書いていないのですが、どちらが正解かまた両方ありえるのか、 > どうなんでしょうか? さて。 > これで、 > test_udp_server(TestSocket) > test_sendmsg_nonblock_error(TestSocketNonblock) > がErrorになっています。 テストで rescue する例外に Errno::ENOSYS を加えると解決しますか? -- [田中 哲][たなか あきら][Tanaka Akira]