code: public static <T> QueueFactory<T> singleWriterboundedNonBlockingQueue(final int queueSize, final WaitStrategy<T> strategy) {
          return () -> new Queue<T>(
                                    new OneToOneConcurrentArrayQueue<>(
                                                                       queueSize),
                                    strategy, strategy);
  
      }
docs: Generate QueueFactory for bounded non blocking queues. Max queue size is determined by the input parameter.
  The provided WaitStrategy is used to determine behaviour of both producers and consumers when the Queue is full (producer)
  or zero (consumer). {@see WaitStrategy#spinWait() , @see WaitStrategy#exponentialBackOff() , @see WaitStrategy#noWaitRetry() }
  
  @param queueSize Max Queue size
  @param strategy Strategy to be employed by producers when Queue is full, or consumers when Queue is zero
  @return bounded wait free Queue Factory backed by an Agrona OneToOneConcurrentArrayQueue