code: public T get() throws InterruptedException {
      T record = this.blockingQueue.poll(this.timeout, this.timeoutTimeUnit);
      if (this.queueStats.isPresent()) {
        this.queueStats.get().getsRateMeter.mark();
      }
      return record;
    }
docs: Get a record from the head of the queue, waiting (up to the configured timeout time)
  for a record to become available.
  
  @return the record at the head of the queue, or <code>null</code> if no record is available
  @throws InterruptedException if interrupted while waiting