以下代码在Ruby 1.9.3p194(2012-04-20)[i386-mingw32]中没有超时:
require 'timeout'
Timeout.timeout(1) { gets }
我预计它会起作用,因为Ruby 1.9使用本机线程。这是预期的(或记录的)行为还是错误?在documentation of Timeout
中没有提到任何限制。阻止IO或其他什么。
(根据评论,这似乎只是Windows版本的问题。)
答案 0 :(得分:0)
这是当前用于Windows的Ruby 1.9.3的一个错误,已经在trunk中修复了。修复程序已被反向移植到1.9.3:http://bugs.ruby-lang.org/issues/6661。