[#7785] rb2c — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

28 messages 1999/09/02

[#7845] [Q] irb and SizedQueue — keiju@... (Keiju ISHITSUKA)

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

14 messages 1999/09/15

[ruby-dev:7845] [Q] irb and SizedQueue

From: keiju@... (Keiju ISHITSUKA)
Date: 1999-09-15 11:14:29 UTC
List: ruby-dev #7845
けいじゅ@日本ラショナルソフトウェアです.

irbでよくわからない現象が発生しています. ちょっと助けてくださいませ.

% irb --context-mode 2

で実行すると普通に動くのですが. irb/main.rb の下の方は以下のようになって
います:

--
# TOP_LEVEL_BINDING generator
if defined?(Thread)
  require "thread"

  IRB.const_set("BINDING_QUEUE", SizedQueue.new(1))
  Thread.abort_on_exception = true
  Thread.start do
    eval "require \"irb/bind\"", TOPLEVEL_BINDING
  end

  IRB::BINDING_QUEUE.pop

else
  IRB.const_set("BINDING_QUEUE", nil)
end
--

で, ここの

  IRB::BINDING_QUEUE.pop

をコメントアウトすると正常に動かなくなるんですね... かわりに, sleep 1と
かThread.passとかを入れても正常に動くようになります. 

ThreadとSizedQueueのタイミングの絡みなのかな? とも思うのですがよくわかり
ません. 

使用しているrubyのバージョンは1.4.0 with patch[ruby-dev:7745],
[ruby-dev:7757]です.

あと, irb-0.6-beta.tgz をin.comingの下に置きました. それを使ってください.

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

In This Thread

Prev Next