Crate rc_event_queue[−][src]
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 EventReader
s live.
In order to completely drop EventQueue
- drop all associated EventReader
s.
Features
double_buffering
: Reuse biggest freed chunk.
Modules
Enums
This way you can control when chunk’s memory deallocation happens. In addition, some operations may cause deallocations as well.
Traits
This should be rust GAT iterator. But it does not exists yet.