class SemanticLogger::Appender::Async

def process_messages

def process_messages
  count = 0
  while (message = queue.pop)
    if message.is_a?(Log)
      appender.log(message)
      count += 1
      # Check every few log messages whether this appender thread is falling behind
      if count > lag_check_interval
        check_lag(message)
        count = 0
      end
    else
      break unless process_message(message)
    end
  end
  logger.trace "Async: Queue Closed"
end