Skip to main content

Data Structures

This chapter covers the general-purpose data structures LibXR uses for task scheduling, data communication and resource management.

Features​

  • Interfaces are platform-independent.
  • Capacity is fixed at construction. SPSCQueue, MPMCQueue and Stack allocate their storage at construction; Queue and ObjectPool can use caller-provided storage and DoubleBuffer uses only caller-provided storage; nodes of List, LockFreeList and RBTree are owned by the caller. Reads and writes after construction do not allocate.
  • Stack, List and RBTree use a mutex and cannot be used in interrupts; SPSCQueue and LockFreeList are lock-free; MPMCQueue supports multiple producers and consumers.

Contents​

For usage, performance comparisons, and application scenarios, see the individual pages.