Crate rc_event_queue

Source
Expand description

Concurrent FIFO event queue / message queue. Multi consumer. Each consumer receive all messages. Lock-free reading. Write under lock (for mpmc version). Write lock does not block read.

Linked list of chunks (C++ std::deque -like). Each chunk have “read counter”. When “read counter” reach readers count - it is safe to drop chunk. Chunk considered read, when Reader reach its end. See doc/principle-of-operation.md.

EventQueue live, until EventReaders live. In order to completely drop EventQueue - drop all associated EventReaders.

§Features

  • double_buffering : Reuse biggest freed chunk.

Modules§

mpmc
Multi-producer multi-consumer.
prelude
spmc
Single-producer multi-consumer.

Enums§

CleanupMode
This way you can control when chunk’s memory deallocation happens. In addition, some operations may cause deallocations as well.

Traits§

LendingIterator
This should be rust GAT iterator. But it does not exists yet.