Data-RingBuffer-Shared
view release on metacpan or search on metacpan
uint32_t elem_size;
uint32_t variant_id;
uint64_t capacity;
uint64_t total_size;
uint64_t data_off; /* 32: offset to data array */
uint64_t seq_off; /* 40: offset to per-slot publication seq array */
uint8_t _pad0[16]; /* 48-63 */
uint64_t head; /* 64: monotonic write cursor (next write position) */
uint64_t count; /* 72: total writes (for overwrite detection) */
uint32_t waiters; /* 80: blocked on new data */
uint32_t wake_seq; /* 84: FUTEX_WAIT target (avoids 64-bit count wraparound) */
uint64_t stat_writes; /* 88 */
uint64_t stat_overwrites; /* 96 */
uint8_t _pad2[24]; /* 104-127 */
} RingHeader;
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
_Static_assert(sizeof(RingHeader) == 128, "RingHeader must be 128 bytes");
#endif
( run in 1.961 second using v1.01-cache-2.11-cpan-39bf76dae61 )