code: public static <T> QueueFactory<T> singleWriterboundedNonBlockingQueue(final int queueSize) {
          return () -> new Queue<T>(
                                    new OneToOneConcurrentArrayQueue<>(
                                                                       queueSize),
                                    new NoWaitRetry<>(), new NoWaitRetry<>());
  
      }
docs: Creates an async.Queue backed by an Agrona OneToOneConcurrentArrayQueue bounded by specified queueSize
  Wait strategy used is NoWaitRetry by default for both Consumers and Producers
  (both Consumers and Producers will repeatedly retry until successful). Use
  withConsumerWaitStrategy  &amp; withProducerWaitStrategy methods on the returned queue to change the
  wait strategy
  <pre>
  {@code
  queue.withConsumerWaitStrategy(new DirectWaitStrategy())
  .withProducerWaitStrategy(new YieldWait());
  }</pre>
  
  @param queueSize
  @return