single-producer, single-consumer
A queue with exactly one writer and one reader, which can be made safe without locks.
In a single-producer, single-consumer queue only the producer writes the head index and only the consumer writes the tail. With the right order (store the value, then publish the index) it is safe between an ISR and the main loop without disabling interrupts.