No. Each consumer is capable of dequeuing the element. If the wrong consumer dequeues the element, then what will happen is the default case of that consumer loop's case structure is executed. The correct consumer might never see the element unless it gets lucky and is the first to dequeue after it is placed in the queue.