XTOS / OPEN SOURCE REAL-TIME SYSTEMOPEN SOURCE · VERSION 0.9.0 · BUILD FROM SOURCE
libxtos-rtxtos_spsc_get_stats

xtos_spsc_get_stats

读取队列的推送、弹出、拒绝和覆盖计数。

本页目录

声明

c
#include <xtos/spsc.h>

void xtos_spsc_get_stats(const struct xtos_spsc_queue *queue,
                         struct xtos_spsc_stats *stats);

参数

参数类型说明
queueconst struct xtos_spsc_queue *队列指针;NULL 时静默返回。
statsstruct xtos_spsc_stats *非 NULL 输出结构;调用方提供存储。

输出字段

字段类型含义
pusheduint64_t表示成功写入队列的完整帧数量。
poppeduint64_t表示成功从队列取出的完整帧数量。
rejected_fulluint64_t表示因队列已满而被拒绝的 push 次数。
rejected_invaliduint64_t表示因参数无效而被拒绝的 push 次数。
overwrittenuint64_t表示被新帧覆盖的帧数量;当前实现不覆盖,读取始终为 0。

返回值

无返回值;成功时逐个写入五个计数。

错误

没有 errno 错误返回。输入限制见注意事项。

注意事项

  • 各计数分别以原子 relaxed load 读取,不是跨字段一致的事务快照;并发时只能作观测。
  • 当前 push 满队列时拒绝而不覆盖,因此 overwritten 在此实现中不会递增,读取到的值始终为 0;该字段保留用于接口统计扩展。

示例

源码

本文按 OpenXTOS 提交 dd313955ad57542bcd2af8827157d1bbd0cf5e83 的头文件和实现编写。