Попытка реализовать Celluloid async в моем рабочем примере, похоже, демонстрирует странное поведение.
здесь мой код выглядит
class Indefinite
include Celluloid
def run!
loop do
[1].each do |i|
async.on_background
end
end
end
def on_background
puts "Running in background"
end
end
Indefinite.new.run!
но когда я запускаю вышеуказанный код, я никогда не вижу puts " Запуск в фоновом режиме"
Но если я поставлю sleep, код, похоже, работает.
class Indefinite
include Celluloid
def run!
loop do
[1].each do |i|
async.on_background
end
sleep 0.5
end
end
def on_background
puts "Running in background"
end
end
Indefinite.new.run!
Любая идея? почему такая разница в вышеупомянутом двух сценариях.
Спасибо.