FifoEmbed: a thread-safe basic queue, packet queue, and FIFO allocator library
When programming device drivers, network stacks, and similar systems, you often need a queue and storage management. FifoEmbed provides three C abstract data types, all implemented on top of circular arrays:
* a basic queue that supports enqueue/dequeue operations, as well as "direct block access."
* a packet queue implemented on top of the basic queue that additionally provides out-of-sequence insertion and packet resequencing.
* a memory pool queue ("mpoolq") is an allocator optimized for first-in/first-out access patterns.
FifoEmbed was documented in the October 2004 issue of the C/C++ User's Journal (now Dr. Dobb's Journal).