code: @Override
      public T take() throws InterruptedException {
          T old = poll();
  
          while (old == null) {
              waitGet_(-1);
              old = poll();
          }
  
          return old;
      }
docs: Removes an object from the buffer. If the buffer is
  empty, then the call blocks until something becomes
  available.
  
  @return Object the next object from the buffer.