Eio_utils.Lf_queueA lock-free multi-producer, single-consumer, thread-safe queue without support for cancellation. This makes a good data structure for a scheduler's run queue.
val create : unit -> 'a tcreate () is a new empty queue.
val push : 'a t -> 'a -> unitpush t x adds x to the tail of the queue. This can be used safely by multiple producer domains, in parallel with the other operations.
val push_head : 'a t -> 'a -> unitpush_head t x inserts x at the head of the queue. This can only be used by the consumer (if run in parallel with pop, the item might be skipped).
val pop : 'a t -> 'a optionpop t removes the head item from t and returns it. Returns None if t is currently empty.
val is_empty : 'a t -> boolis_empty t is true if calling pop would return None.
val close : 'a t -> unitclose t marks t as closed, preventing any further items from being pushed.