From: Ayumu Aizawa Date: 2011-11-15T02:03:05+09:00 Subject: [ruby-dev:44868] Re: [Backport93 - Backport #5429] 64ビットなFreeBSDのioctlでビット31が1なリクエストの時の不具合 近永さんありがとうございます。 r33753 でなおしておきました。 2011年11月15日1:41 KOSAKI Motohiro : > 2011年11月14日11:25 Tomoyuki Chikanaga : >> >> Issue #5429 has been updated by Tomoyuki Chikanaga. >> >> >> あいざわさんのパッチだと、Tempfile.new がブロックを yield しないので、assert を通っていないだけのようです。 >> >> SnowLeopard の man fcntl によると >> >> [EINVAL] Cmd is F_DUPFD and arg is negative or greater than the maximum allowable number (see getdtablesize(2)). >> >> で getdtablesize() は 256 を返すのでとりあえず 500 -> 255 にすると通るようになりました。 >> 500 というのは他の open 済みの fd と重複しない程度に大きな数字ということだと思うので、とりあえず 255 にしてしまってもいいでしょうか。ちゃんと空き fd を確保してそこに dup するようにしたほうがいいのかもしれませんが。 > > うーん、あんまり凝ったことをするとまた別のOSの制限にひっかかるかもしれないので > 255でお願いできるとうれしいなあ。 > fcntlのテストが全然ないから追加したんだけど、ポータブルに動きそうなコマンドって > 難しいのよねえ・・ > >