# File lib/god/timer.rb, line 28
    def initialize
      @events = []
      @mutex = Mutex.new
      
      @timer = Thread.new do
        loop do
          begin
            # get the current time
            t = Time.now.to_i
          
            # iterate over each event and trigger any that are due
            @events.each do |event|
              if t >= event.at
                self.trigger(event)
                @mutex.synchronize do
                  @events.delete(event)
                end
              else
                break
              end
            end
          
            # sleep until next check
            sleep INTERVAL
          rescue Exception => e
            message = format("Unhandled exception (%s): %s\n%s",
                             e.class, e.message, e.backtrace.join("\n"))
            applog(nil, :fatal, message)
            sleep INTERVAL
          end
        end
      end
    end