Expand description
完成 AudioChunk の SPSC リング(ringbuf バック)。
満杯時は最古を pop して新規を push する(DROP_OLDEST)。ドロップ数を
AtomicU64 で数えて次チャンクの dropped_before に反映する。consumer は
try_pop()。
ringbuf の overwrite(push_overwrite)は producer が最古を pop する必要があり、
これは consumer 側のインデックスにも触れるので SPSC のロックフリー前提を満たさない
(overwrite を並行に行うにはロックが要る)。このリングの producer は RT スレッド
ではなく取り込み/加工スレッド(通常優先度)なので、リング本体を短い Mutex
で保護する。RT 経路(crate::raw_ring)はこのロックに触れない。
Structs§
- Chunk
Consumer - poll スレッド側のハンドル。
try_popで消費する。 - Chunk
Producer - 加工スレッド側のハンドル。DROP_OLDEST 方針で push する。
Functions§
- chunk_
ring - 容量
capacity_chunksのチャンクリングを作る。