2013-04-02 1 views
1

Je suis tombé sur un code qui ajoute un minuteur avec délai 0:EventMachine.add_timer (0)

EventMachine.add_timer(0) { 
    ... 
} 

Est-ce sens? comment cela peut-il être utile? Est-ce différent d'utiliser next_tick?

EventMachine.next_tick { 
    ... 
} 

Répondre

2

Depuis que je suis curios moi-même je pris un coup d'oeil dans le code source eventmachine:

http://eventmachine.rubyforge.org/EventMachine.html#run-class_method

où je trouve cet intérieur de la boucle de l'événement:

... 
if @next_tick_queue && [email protected]_tick_queue.empty? 
    add_timer(0) { signal_loopbreak } 
end 
... 

qui assez beaucoup signifie que lorsque vous définissez un next_tick en interne, il utilisera add_timer (0) {..} pour cela. La seule différence pourrait être l'ordre d'exécution, je ne suis pas sûr de la manière dont les temporisateurs en file d'attente sont exécutés en ce moment.

Questions connexes