if (!singleConsumer)
throw new UnsupportedOperationException("Primitive queue with multiple consumers is unsupported");
final BasicSingleConsumerFloatQueue queue;
if (mailboxSize < 0) {
queue = new SingleConsumerLinkedArrayFloatQueue();
} else if (policy == OverflowPolicy.DISPLACE) {
queue = new CircularFloatBuffer(mailboxSize, singleProducer);
} else
queue = new SingleConsumerArrayFloatQueue(mailboxSize);