From: siena@... (Siena. / SHINAGAWA, Norihide) Date: 2003-12-05T00:07:54+09:00 Subject: [ruby-dev:22141] Re: invalid parameter to fcntl in drb.rb Siena. です。 》削られてしまうとOpenBSD 3.3でtest/drb/test_drbssl.rbで 》などのエラーになったり、テストの実行が止まったりするようなので、 》 soc.fcntl(Fcntl::F_SETFL, Fcntl::O_NONBLOCK) if defined? Fcntl::O_NONBLOCK 》- soc.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC) if defined? Fcntl::FD_CLOEXEC 》+ if defined? Fcntl::FD_CLOEXEC 》+ soc.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC) 》+ begin 》+ soc.fcntl(Fcntl::F_SETFL, Fcntl::FD_CLOEXEC) 》+ rescue Errno::EINVAL 》+ # ignore 》+ end 》+ end OpenBSD はほとんど分からないので教えていただきたいのですが、 OpenBSD では F_SETFL と FD_CLOEXEC の組合せで使われるのでしょうか。 WWW で fcntl(2) を見てみましたが、OpenBSD 3.3 でも F_SETFD と FD_CLOEXEC の組合せで使われるものように読めます。 念のため、F_SETFL との組合せも一般的なものなのか疑問に思い、 "F_SETFL FD_CLOEXEC fcntl" でぐぐっても見当たりませんでした。 F_SETFD との組み合わせで正しいのであれば、[ruby-dev:22139] は 別の箇所の問題が顕在化した可能性もあるのではないでしょうか。 --- Siena.