|
DeterministicESPAsyncWebServer v6.27.1
Zero-allocation, bounded-execution async HTTP server for ESP32
|
Shared single-producer / single-consumer byte-ring primitive. More...
#include <atomic>#include <stddef.h>#include <stdint.h>#include <string.h>Go to the source code of this file.
Classes | |
| struct | DetAtomic< T > |
Shared single-producer / single-consumer byte-ring primitive.
The one implementation of the receive-ring drain math, used by BOTH transports: the server (det_conn_* in tcp.h, over conn_pool slots) and the outbound client (det_client_* over its pool). Sharing it is deliberate - it keeps the ring invariants in a single place so a consumer in any layer drains identically and cannot reimplement (and subtly break) the wrap/ordering by hand.
Ownership rule: exactly one producer advances head, exactly one consumer advances tail; indices are DetAtomic so a producer's buffer writes are visible before the consumer observes the advanced index (acquire/release), correct across the tcpip_thread <-> worker/caller boundary on either core. No locks, no RMW.
Definition in file ring.h.