docs: public RingBuffer<T> put(T element) throws InterruptedException {
          if(element == null)
              return this;
          lock.lock();
          try {
              while(count == buf.length)
                  not_full.await();
  
              buf[wi]=element;
              if(++wi == buf.length)
                  wi=0;
              count++;
              not_empty.signal();
              return this;
          }
          finally {
              lock.unlock();
          }
      }