次のコードは、Ruby 1.9.3p194 (2012-04-20) [i386-mingw32] でタイムアウトしません。
require 'timeout'
Timeout.timeout(1) { gets }
Ruby 1.9 はネイティブ スレッドを使用するため、動作することを期待していました。これは意図された (または文書化された) 動作ですか、それともバグですか? のドキュメントにTimeout
は、制限に関する言及はありません。ブロックIOなど。
(コメントによると、これはWindows版のみの問題のようです。)