[#40130] Ruby/Tk の講習会 — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

12 messages 2004/10/25

[ruby-list:40123] irb: puts in Thread

From: Mitsuhiro Kondo <miche@...>
Date: 2004-10-19 17:42:01 UTC
List: ruby-list #40123
近藤と申します。

irbで"\n"なしの文字列をThread内でputsすると、文字列と"\n"の間に
別スレッドの出力が混じってしまうことがあります。
例えば、
Thread.new { 12.times {|n| puts "5:#{n}"; sleep 0.5}}
Thread.new { 20.times {|n| puts "3:#{n}"; sleep 0.3}}
とかすると、3:135:10とかいう行が出て来ることがあります。
シェル上ではsleepの値をもっと小さくしても問題はないようです。
Thread.critical=trueとThread.critical=falseでputsを囲めばうまく
動くようにはなりますが、あまりにも美しくないです。
環境は、
$ ruby -v
ruby 1.8.1 (2003-12-25) [powerpc-darwin]
です。

---
近藤充弘
miche@mac.com


In This Thread

Prev Next