У меня точно такая же проблема размещена здесь год назад: Ruby Loop Failing in ThreadРубин Сон в петле в теме
Вот код (почти так же, как и в предыдущем разделе)
class NewObject
def my_funk
t = Thread.new {
until false do
puts sleep 15 # sleeps way too much
end
}
t.join
end
end
if __FILE__ == $0
s = NewObject.new()
s.my_funk
end
И здесь вывод:
15
42
36
38
33
45
42
33
32
40
Код в основном печатает фактическое количество секунд спал. Кто-нибудь знает, что здесь происходит и как это исправить?
Я бегу Windows 7 и Руби 1.8.7
Не знаю, что здесь происходит, но код работает отлично, используя JRuby 1.5.3 в Windows 7. –
Он также работает в Ruby 1.9 на Win7. Думаю, мне придется обновить свой рубин. –
У вас есть спать 15, он должен просто спать 15 без пут ... – nictrix