docs: public T remove() {
          lock.lock();
  
          try {
              if(queue.isEmpty())
                  return null;
              El<T> el=queue.poll();
              count-=el.size;
              not_full.signalAll();
              return el.el;
          }
          finally {
              lock.unlock();
          }
      }