Matrix653 条件变量

更新时间:
2023-11-16
下载文档

Matrix653 条件变量

本节将介绍 Matrix653 条件变量的使用。本节详细定义在 mx_cond.h 头文件中。

条件变量只能与互斥量配合使用,如果您还不清楚互斥量,建议先查阅互斥量章节。

条件变量相关 API

下表展示了条件变量相关的 API:

API描述
mx_cond_init初始化一个条件变量
mx_cond_signal发送一个条件变量
mx_cond_broadcast广播一个条件变量
mx_cond_wait等待一个条件变量

mx_cond_init()

  • 描述 初始化一个条件变量

  • 函数原型

RETURN_CODE_TYPE  mx_cond_init (
        /*in */ MX_COND_TYPE                *cond,
        /*in */ QUEUING_DISCIPLINE_TYPE     queuing_discipline);
  • 参数
输入/输出参数描述
[in]cond条件变量指针
[in]queuing_discipline条件变量的等待规则

queuing_discipline 参数可以取如下的值:

含义
FIFO按先来先服务规则等待
PRIORITY按优先级高低规则等待
  • 返回值 Matrix653 内核错误码

  • 注意事项

  • 示例

static MX_COND_TYPE   cond;

int xxx()
{
    mx_cond_init(&cond, PRIORITY);

    return 0;
}

mx_cond_signal()

  • 描述 发送一个条件变量

  • 函数原型

RETURN_CODE_TYPE  mx_cond_signal (
        /*in */ MX_COND_TYPE                *cond);
  • 参数
输入/输出参数描述
[in]cond条件变量指针
  • 返回值 Matrix653 内核错误码

  • 注意事项

  • 示例

mx_cond_broadcast()

  • 描述 广播一个条件变量

  • 函数原型

RETURN_CODE_TYPE  mx_cond_broadcast (
        /*in */ MX_COND_TYPE                *cond);
  • 参数
输入/输出参数描述
[in]cond条件变量指针
  • 返回值 Matrix653 内核错误码

  • 注意事项

  • 示例

mx_cond_wait()

  • 描述 等待一个条件变量

  • 函数原型

RETURN_CODE_TYPE  mx_cond_wait (
        /*in */ MX_COND_TYPE                *cond,
        /*in */ MX_SAFE_MUTEX_TYPE          *mutex,
        /*in */ SYSTEM_TIME_TYPE            time_out);
  • 参数
输入/输出参数描述
[in]cond条件变量指针
[in]mutex互斥量指针
[in]time_out等待的超时时间
  • 返回值 Matrix653 内核错误码

  • 注意事项 不能在中断中调用

  • 示例

文档内容是否对您有所帮助?
有帮助
没帮助