global

def run( threaded )

def run( threaded )
  loop do
    begin
      mark_time
      break unless running?
      threaded.run
      if maximum_iterations
        self.iterations += 1
        if finished_iterations?
          self.running = false
          break
        end
      end
      sleep if running?
    rescue SystemExit; raise
    rescue Exception => err
      if continue_on_error
        threaded.logger.error err
      else
        threaded.logger.fatal err
        raise err
      end
    end
  end
ensure
  if threaded.respond_to?(:after_stopping) and !self.running
    threaded.after_stopping
  end
  self.running = false
end  # @private