def initialize(&on_timeout)
    @on_timeout = on_timeout || ON_TIMEOUT
    @scheduler  = Rack::Timeout::Scheduler.singleton
  end
initializes a timeout object with an optional block to handle the timeout differently. the block is passed the thread that's gone overtime.