A set of library functions to make lock-free ringbuffers available
to JACK clients. The `capture_client.c' (in the example_clients
directory) is a fully functioning user of this API.
The key attribute of a ringbuffer is that it can be safely accessed
by two threads simultaneously -- one reading from the buffer and
the other writing to it -- without using any synchronization or
mutual exclusion primitives. For this to work correctly, there can
only be a single reader and a single writer thread. Their
identities cannot be interchanged.
@file ringbuffer.h
A set of library functions to make lock-free ringbuffers available to JACK clients. The `capture_client.c' (in the example_clients directory) is a fully functioning user of this API.
The key attribute of a ringbuffer is that it can be safely accessed by two threads simultaneously -- one reading from the buffer and the other writing to it -- without using any synchronization or mutual exclusion primitives. For this to work correctly, there can only be a single reader and a single writer thread. Their identities cannot be interchanged.