7.22. WAIT_COMPLETION

Overview

提供wait_completion接口使用方法和常见问题。

7.22.1. 应用示例

示例演示:

  • wait_completion接口使用

example: 进入 apps/demo/demo_DevKitBoard/include/demo_config.h ,开启宏 USE_WAIT_COMPLETION_TEST_DEMO

7.22.2. 常见问题

  • wait_completion一般什么情况下使用

    答:一般用于异步事件非阻塞处理,需要等待条件成立再去运行某个函数,并且想这个函数指定在任务中如app_core运行,避免阻塞等死,也可以达到单线程去运行函数

7.22.3. API Reference

Functions

u16 wait_completion_add_to_task(const char *task_name, int (*condition)(void*), int (*callback)(void*), void *priv, void *condition_priv)

条件轮询回调,回调函数将通过队列消息由指定线程接收执行

Note

指定的线程一定要接收任务队列消息才会执行回调函数

Parameters
  • task_name, – 指定执行回调函数的任务名

  • condition – 条件判断函数指针

  • callback – 回调函数指针

  • priv, – 传到回调函数参数指针

  • condition_priv – 传到判断条件函数参数指针

Returns

id:创建成功的id号 0:失败

u16 wait_completion(int (*condition)(void*), int (*callback)(void*), void *priv, void *condition_priv)

条件轮询回调,回调函数将通过队列消息由当前线程接收执行

Note

调用此函数的线程一定要接收任务队列消息才会执行回调函数

Parameters
  • condition – 条件判断函数指针

  • callback – 回调函数指针

  • priv – 传到回调函数参数指针

  • condition_priv – 传到判断条件函数参数指针

Returns

id:创建成功的id号 0:失败

int wait_completion_del(u16 id)

删除条件轮询回调函数

Parameters

id – 创建的时候对应返回的ID号

Returns

0:成功 非0:失败