From: Yukihiro Matsumoto Date: 2007-03-19T13:28:46+09:00 Subject: [ruby-dev:30630] Re: stdout flush in fork まつもと ゆきひろです In message "Re: [ruby-dev:30628] Re: stdout flush in fork" on Mon, 19 Mar 2007 13:20:17 +0900, keiju@ishitsuka.com (石塚圭樹) writes: |>rb_fork()がrb_f_fork()から呼ばれる場合にはrb_thread_atfork() |>の呼び出し後ですから、他のスレッドは存在しないとみなしてよい |>と思います(YARVではテーブルから削除するだけで実際にスレッド |>を止めるようにしてないみたいだけど)。だから問題なし。 | |ん? |rb_f_fork が rb_fork を呼び出し, そのforkした側で rb_thread_atforkして |いるように見えますが? えーと、そうですね(恥 とはいえ、flushせねばならないのはforkを行ったスレッドが出力 したもので、他のスレッドが出力したものについては他のスレッド からいずれflushされるのは間違いないように思います。 # ちょっと勘違いが続いて自信なくなってきたけど |それに, flushするのはそういう問題でしたっけ? つまり, 子プロセス側でス |レッドが生きていてそれが悪さする可能性があるから? forkした子プロセスと出力が混じっちゃって二重に出力されちゃう からとかだったような。