/ / Ruby dorme em um loop no segmento - ruby, multithreading, loops, sono

Ruby Sleep em um Loop in Thread - ruby, multithreading, loops, sleep

Tenho exatamente o mesmo problema postado aqui há um ano: Loop Ruby falhando no thread

Aqui o código (praticamente o mesmo que no tópico acima)

 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

E aqui está a saída:

15
42
36
38
33
45
42
33
32
40

O código basicamente imprime o número real de segundos inativos. Alguém sabe o que está acontecendo aqui e como corrigi-lo?

Estou executando o Windows 7 e Ruby 1.8.7

Respostas:

0 para resposta № 1

Se não me engano, o sono é implementado usandoa chamada do sistema nativo e provavelmente interfere nos threads verde-rubi, gerenciados pela VM. Isso também explicaria por que o JRuby e o 1.9 não sofrem do mesmo problema ....