final BasicSingleConsumerLongQueue queue;
if (mailboxSize < 0) {
queue = new SingleConsumerLinkedArrayLongQueue();
} else if (policy == OverflowPolicy.DISPLACE) {
queue = new CircularLongBuffer(mailboxSize, singleProducer);
} else
queue = new SingleConsumerArrayLongQueue(mailboxSize);
return new QueueLongChannel(queue, policy);
}