以下代码在 Ruby 1.9.3p194 (2012-04-20) [i386-mingw32] 中不会超时:
require 'timeout'
Timeout.timeout(1) { gets }
我希望它能够工作,因为 Ruby 1.9 使用本机线程。这是预期的(或记录的)行为还是错误?在文档中Timeout
没有提到任何限制 wrt。阻塞 IO 什么的。
(根据评论,这似乎只是 Windows 版本的问题。)
以下代码在 Ruby 1.9.3p194 (2012-04-20) [i386-mingw32] 中不会超时:
require 'timeout'
Timeout.timeout(1) { gets }
我希望它能够工作,因为 Ruby 1.9 使用本机线程。这是预期的(或记录的)行为还是错误?在文档中Timeout
没有提到任何限制 wrt。阻塞 IO 什么的。
(根据评论,这似乎只是 Windows 版本的问题。)
这是当前 Ruby 1.9.3 for Windows 的一个错误,已在主干中修复。该修复已被移植到 1.9.3:http ://bugs.ruby-lang.org/issues/6661 。