# File lib/god/driver.rb, line 110 def push(event) Thread.critical = true @events << event @events.sort! begin t = @waiting.shift if @events.first == event t.wakeup if t rescue ThreadError retry ensure Thread.critical = false end begin t.run if t rescue ThreadError end end