Как мога да убия работещи процеси в EventMachine? По-долу е даден пример, стартирам 10 процеса и след това се опитвам да ги изтрия всички (но не работи). Целта ми е да нямам изхода „Готово“.
require "rubygems"
require "eventmachine"
class Event
def start
sleep(5)
puts Time.now.to_s + ": Finished!"
end
end
EventMachine.run do
events = []
10.times {
handle = Event.new
events << handle
EventMachine.defer(proc {
handle.start
})
}
# Terminate all events!
events.each do |handle|
handle = nil
ObjectSpace.garbage_collect
end
end
Наясно съм, че мога да задам променлива и да проверя дали е зададена, когато правя изхода, но чувствам, че това не е „истинското“ нещо или това наистина е единственото решение?