けいじゅ@日本ラショナルソフトウェアです.

In [ruby-list :7385 ] the message: "[ruby-list:7385] Re: [Q] Thread ",
on Apr/09 16:59(JST) Yukihiro Matsumoto writes:

>まつもと ゆきひろです

>出力が行われないのは,上述の行のお蔭で出力を行うメインのスレッ
>ドの実行頻度が極端に下がってしまったせいだと思います.

なるほど. ほんとだ. 失礼しました.

>tracerでth2だけ動いているように見えた理由は分かりません.
>また,[ruby-list:7376]の問題は別の問題かも知れません.

とはいえ, こっちはほんとです.

以下のプログラムを実行してみて下さい.

rbc0> f = File.open("/tmp/foo", "w")
#<File:0x400e5cdc>
rbc0> t = Thread.start{loop do f << "1"; end}
#<Thread:0x400dae40>
rbc0> t.alive?
true
rbc0> t.stop?
false
rbc0> Thread.critical
false

ある程度ファイルに書き込んで, 止まってしまうと思います. rbcそのものは
getsで待ちになっているわけですから, おかしいですよね?

んで.

rbc0> Thread.pass
nil

や.
rbc0> sleep 1
rbc0> gets

とすると, またある程度動いて止まってしまいます. 

たぶん. rbcが使っている機能のどっかに原因があるとは思いますが...

__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju / rational.com <<---