[#30549] [ANN] Ruby 1.8.6 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.6 をリリースしました。

14 messages 2007/03/12

[#30553] help: lib/shell for ruby 1.9 — keiju@... (Keiju ISHITSUKA)

けいじゅ@いしつかです.

13 messages 2007/03/13
[#30585] Re: help: lib/shell for ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/03/15

まつもと ゆきひろです

[#30587] Re: help: lib/shell for ruby 1.9 — keiju@... (石塚圭樹) 2007/03/15

けいじゅ@いしつかです.

[#30588] Re: help: lib/shell for ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/03/15

まつもと ゆきひろです

[ruby-dev:30619] Re: stdout flush in fork

From: Yukihiro Matsumoto <matz@...>
Date: 2007-03-17 13:52:08 UTC
List: ruby-dev #30619
まつもと ゆきひろです

In message "Re: [ruby-dev:30616] Re: stdout flush in fork"
    on Sat, 17 Mar 2007 17:58:58 +0900, keiju@ishitsuka.com (石塚圭樹) writes:
|
|けいじゅ@いしつかです.
|
|In [ruby-dev:30614] the message: "[ruby-dev:30614] Re: stdout flush in
|fork", on Mar/17 16:38(JST) Yukihiro Matsumoto writes:
|
|>まつもと ゆきひろです
|
|>|rb_fork をみてみると, flush してから forkするまでの間に他のスレッドが
|>|再度STDOUTなどに書き込みを行う可能性がないではないと思うのですがどうな
|>|んでしょう?
|>
|>その可能性はあると思いますが、問題ではないのでは?
|>問題なのは「flushされないこと」であって「flushが多いこと」は
|>さほど問題にならないように思いますが。
|
|STDOUTにflushしたあと, forkする前に, 他のスレッドが, STDOUTに書き込むっ
|てことは STDOUTがflush されていないことになるとおもうのですが?

あれ? ちょっと調べ直してみました。

rb_fork()がrb_f_fork()から呼ばれる場合にはrb_thread_atfork() 
の呼び出し後ですから、他のスレッドは存在しないとみなしてよい
と思います(YARVではテーブルから削除するだけで実際にスレッド
を止めるようにしてないみたいだけど)。だから問題なし。

それ以外でrb_fork()を直接呼んだ場合には、他のスレッドはまだ
生きているわけですから、そちらでいずれflushされるでしょう。

In This Thread