Следующий код
require 'timeout'
begin
timeout(20) do # Line 4
result = `hostname`
end # Line 6
rescue Timeout::Error
puts "Timeout"
exit
end
puts "Result:" + result # Line 12
выдает ошибку
issue.rb: 12: в <main>': undefined local variable or method
result 'для main: Object (NameError)
но если я закомментирую элемент тайм-аута (строки 4 и 6), он будет работать нормально.Я пытался использовать IO.popen, IO.select и т. Д., Но ничего из этого не помогает.Я использовал эту технику тайм-аута во многих других областях, и она работала нормально.
Похоже, она не связана со значением тайм-аута, так как я экспериментировал с гораздо большими и меньшими значениями.* Я использую Ruby 1.92 на Windows XP.Любая помощь очень ценится.
ps Моя первоначальная проблема не заключалась в запуске "hostname", а в более сложном пакетном задании SQL Server.В качестве бонуса, будет ли автоматически завершена длительная системная задача, превышающая время ожидания?Я прочитал много сообщений о том, что библиотека тайм-аутов не соблюдает тайм-ауты, когда занят выполнением системных задач?