From: matz@... (Yukihiro Matsumoto) Date: 2000-11-27T23:41:21+09:00 Subject: [ruby-list:26206] Re: fork problem? まつもと ゆきひろです In message "[ruby-list:26168] Re: fork problem?" on 00/11/26, Tanaka Akira writes: |> dupしているのはstdioのコードをソケットに対しても適用可能にす |> るためです。stdioがseekなしで読み書きできればこんなことはし |> なくても済むのですが。 | |うぅむ。rw な FILE は read/write の切り替わり時に seek する、というの |が問題なわけでしょうか? 「seekしないと書き込みを保証しない」とman pageに書いてありま した。Rubyでは双方向ストリームも扱うのでそれは望ましくないで すよね。 |そういう問題があることは不覚にも気がついていま |せんでしたが、ひとつの fd に対して 2回 fdopen するするわけにはいかない |んでしょうか? |(片方でしか close できないから memory leak してしまうか?) そう思って今はdupしているわけです。もうちょっと調査が必要で しょうか? fclose(3)のエラーを無視すれば、問題ないのかなあ。 |> IO#fcntlやIO#ioctlがfとf2の両方にfcntl(2), ioctl(2)を呼べば |> 済む問題だといいんですが、どうなんでしょう? | |それでも済みます。たぶん。 CVS最新ではそうしてみました。 |> いっそ、fork_and_kill_other_threadsをforkの標準仕様にしちゃ |> いましょうか。 | |賛成です。 CVS最新ではそうしてみました。 |が、(ruby に限らず)余計なお節介に悩まされることが多い経験上、本物の |fork も他の名前(Process.fork とか?)で残しておくといいのではないかとい |う気もかすかにしないでもありません。具体的にどの場合に困る、というのは |今は思いつきませんが... そうですねえ。残すとしてももうちょっと違う名前にしたいとは思 います。名前が思い付いたら教えてください。> みなさま。 まつもと ゆきひろ /:|)