protected T RelaxedPeek() { LinkedQueueNode <T> currConsumerNode = this.ConsumerNode; // don't load twice, it's alright LinkedQueueNode <T> nextNode = currConsumerNode.LvNext(); return(nextNode?.LpValue()); }
protected T RelaxedPoll() { LinkedQueueNode <T> currConsumerNode = this.LpConsumerNode(); // don't load twice, it's alright LinkedQueueNode <T> nextNode = currConsumerNode.LvNext(); return(nextNode != null ? this.GetSingleConsumerNodeValue(currConsumerNode, nextNode) : null); }