OSX和Ruby 1.9.2中的线程问题

时间:2011-09-29 06:06:36

标签: ruby multithreading macos ruby-1.9 ruby-1.9.2

在IRB中运行以下代码:

t = Thread.new { loop { puts 'Hi' } }

我收到一个 hi ,然后没有更多输出。只有当我开始按回车键时,才能按预期接收输出,直到我停止按回车键。

如果我执行 t.join ,一切都按预期进行

问题发生在IRB,pry和ripl中,使用ruby 1.9.2-p180和1.9.2-p290在OSX 10.7中的rvm 1.8.0和OSX 10.6中的rvm 1.6.20

readline通过 rvm pkg install readline

安装

感谢您的任何见解

1 个答案:

答案 0 :(得分:2)

OSX上的某些版本的 readline 正在阻止。如果您遇到上述行为,可以通过添加

来禁用readline
IRB.conf[:USE_READLINE] = false

在.irbrc