pub struct EvQue { /* private fields */ }Expand description
C event_que (dbEvent.c:69-82) — one ring, shared by every subscription
attached to it.
Exposes no mutating method: events enter through EventSink::post and
leave through EventReader::recv / EventReader::try_recv, which are
the sole owners of C’s two decisions. The accessors below are read-only
views of C’s counters for diagnostics and tests.
Implementations§
Source§impl EvQue
impl EvQue
Sourcepub fn n_duplicates(&self) -> usize
pub fn n_duplicates(&self) -> usize
C nDuplicates — entries queued beyond the first for their monitor,
across every subscription on this queue.
Sourcepub fn nreplace(&self, sid: u32) -> u64
pub fn nreplace(&self, sid: u32) -> u64
C nreplace for one monitor — posts that overwrote its last entry.
Sourcepub fn npend(&self, sid: u32) -> usize
pub fn npend(&self, sid: u32) -> usize
C npend for one monitor — entries queued and not yet delivered.
Sourcepub fn ncollapse(&self, sid: u32) -> u64
pub fn ncollapse(&self, sid: u32) -> u64
Posts this monitor absorbed under the latest-only rule — the port’s
counter for C’s uncounted early-drop (dbEvent.c:786-799).
Sourcepub fn latest_only(&self, sid: u32) -> bool
pub fn latest_only(&self, sid: u32) -> bool
C useValque == FALSE for one monitor: it has carried a value too wide
for union native_value, so it keeps only its latest entry. C reports
the same state as “queueing disabled” in dbel (dbEvent.c:224-226).