Zrythm
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
mpmc_queue.h File Reference

Multiple Producer Multiple Consumer lock-free queue. More...

#include <stddef.h>
#include <stdatomic.h>
Include dependency graph for mpmc_queue.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  cell_t
 
struct  MPMCQueue
 Multiple Producer Multiple Consumer lock-free queue. More...
 

Macros

#define MPMC_USE_STD_ATOMIC   1
 
#define MPMC_QUEUE_TYPE   atomic_uint
 

Functions

MPMCQueuempmc_queue_new (void)
 
NONNULL void mpmc_queue_reserve (MPMCQueue *self, size_t buffer_size)
 
NONNULL void mpmc_queue_free (MPMCQueue *self)
 
NONNULL void mpmc_queue_clear (MPMCQueue *self)
 
HOT NONNULL int mpmc_queue_push_back (MPMCQueue *self, void *const data)
 
HOT NONNULL int mpmc_queue_dequeue (MPMCQueue *self, void **data)
 

Detailed Description

Multiple Producer Multiple Consumer lock-free queue.

Definition in file mpmc_queue.h.

Macro Definition Documentation

◆ MPMC_QUEUE_TYPE

#define MPMC_QUEUE_TYPE   atomic_uint

Definition at line 44 of file mpmc_queue.h.

◆ MPMC_USE_STD_ATOMIC

#define MPMC_USE_STD_ATOMIC   1

Definition at line 40 of file mpmc_queue.h.