Documentation
¶
Overview ¶
Lock-free data structures
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Queue ¶
type Queue[T any] struct { // contains filtered or unexported fields }
Queue is a lock-free queue with a single consumer and multiple producers.
func NewQueue ¶
Constructs a new empty queue with a head node of type T and initializes the tail to point to the head, enabling thread-safe operations.
type YiQueue ¶
type YiQueue[T any] struct { Notify chan struct{} // contains filtered or unexported fields }
YiQueue is a lock-free Yielding Queue.
It is desgined to be used by a single consumer and multiple producers. Very little spin-locking is used; instead the ring will notify the consumer with a channel when the write rate is not keeping up with the read rate.
func NewYiQueue ¶
Constructs a new YiQueue with a buffered notification channel and an underlying queue for elements of type T.
func (*YiQueue[T]) Iter ¶
Returns an iterator that sequentially pops elements from the YiQueue, yielding each value until the queue is empty or the yield function returns false.