ruby-trunk-changes r33635 - r33642

akr:r33635 2011-11-05 11:19:48 +0900

socketpair(2) に SOCK_CLOEXEC をセットして読んで errno=EINVAL が返ってきた時に SOCK_CLOEXEC を使わないようにしていましたが、別の理由で EINVVAL が返ってきているかもしれないので SOCK_CLOEXEC をつけずに再度 socketpair(2) を呼んでそれで EINVAL でなかったら try_sock_cloexec を 0 にして SOCK_CLOEXEC を使わないようにするようにしています。だいぶ複雑になってきました。

svn:r33636 2011-11-05 11:19:52 +0900

version.h の日付更新。

akr:r33637 2011-11-05 15:46:02 +0900

rsock_socket() から socket(2) を呼び出して close-on-exec フラグをセットするところを rsock_socket0() という関数に切り出しています。

ktsj:r33638 2011-11-05 16:37:47 +0900

ライブラリのメソッド定義で不要なブロック引数(&blk のように宣言するやつ)を削除して不要なブロックの Proc オッブジェクト化を避けるようにしています。早くなるかも?

akr:r33639 2011-11-05 17:56:50 +0900

rsock_socket0() でも socket(2) が errno=EINVAL で返ってきたときに SOCK_CLOEXEC をセットせずに呼んで原因が SOCK_CLOEXEC がサポートされていないからかチェックするようにしています。

akr:r33640 2011-11-05 18:06:05 +0900

rsock_socketpair0() の条件分岐を整理するリファクタリング

akr:r33641 2011-11-05 19:13:00 +0900

rb_cloexec_fcntl_dupfd() でも fcntl(2) で errno=EINVAL が返ってきた時 F_DUPFD_CLOEXEC が原因かどうかチェックしてその時だけ try_dupfd_cloexec を 0 にしてもう F_DUPFD_CLOEXEC を実行しないようにしています。

duerst:r33642 2011-11-05 20:30:51 +0900

insns.def の YARV の命令のコメントの英文を添削しています。