.. _data_structures:

Async Data Structures
-----------------------------------------------------------------------------------

.. toctree::
   :maxdepth: 1
   :hidden:

   qu_spsc_bounded
   qu_spsc_unbounded
   qu_mpsc_bounded
   qu_mpsc_unbounded
   channel
   
Bounded Queues
^^^^^^^^^^^^^^^^^^^^^

.. list-table::
   :widths: 25 75
   :header-rows: 0

   * - :literal_ref:`tmc::qu_spsc_bounded<qu_spsc_bounded>`
     - SPSC queue
   * - :literal_ref:`tmc::qu_mpsc_bounded<qu_mpsc_bounded>`
     - MPSC queue

Unbounded Queues
^^^^^^^^^^^^^^^^^^^^^


.. list-table::
   :widths: 25 75
   :header-rows: 0

   * - :literal_ref:`tmc::qu_spsc_unbounded<qu_spsc_unbounded>`
     - SPSC queue
   * - :literal_ref:`tmc::qu_mpsc_unbounded<qu_mpsc_unbounded>`
     - MPSC queue
   * - :literal_ref:`tmc::channel<channel>`
     - MPMC queue. accessed via ``chan_tok`` hazard pointer + shared ownership handle
